Bootstrapping of Patient-Specific Simulations of Cardiac Electrical Activity

ABSTRACT

Systems are provided for generating data representing electromagnetic states of a heart for medical, scientific, research, and/or engineering purposes. The systems generate the data based on source configurations such as dimensions of, and scar or fibrosis or pro-arrhythmic substrate location within, a heart and a computational model of the electromagnetic output of the heart. The systems may dynamically generate the source configurations to provide representative source configurations that may be found in a population. For each source configuration of the electromagnetic source, the systems run a simulation of the functioning of the heart to generate modeled electromagnetic output (e.g., an electromagnetic mesh for each simulation step with a voltage at each point of the electromagnetic mesh) for that source configuration. The systems may generate a cardiogram for each source configuration from the modeled electromagnetic output of that source configuration for use in predicting the source location of an arrhythmia.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of application Ser. No. 17/966,315,filed Oct. 14, 2022, entitled “Bootstrapping of Patient-SpecificSimulations of Cardiac Electrical Activity”, which is a continuation ofapplication Ser. No. 17/079,273, filed Oct. 23, 2020, entitled“CALIBRATION OF SIMULATED CARDIOGRAMS” (Attorney Docket No.129292-8015.US01), which is a continuation-in-part of internationalapplication PCT/US2019/029184, filed Apr. 25, 2019, entitled“CALIBRATION OF STIMULATED CARDIOGRAMS” (Attorney Docket No.129292-8015.W000) and is a continuation-in-part of U.S. patentapplication Ser. No. 16/206,005, filed Nov. 30, 2018, entitled“CALIBRATION OF SIMULATED CARDIOGRAMS” (Attorney Docket No.129292-8015.US00), both international application PCT/US2019/029184 andU.S. patent application Ser. No. 16/206,005 claim the benefit of U.S.Provisional Application No. 62/663,049, filed on Apr. 26, 2018, entitled“MACHINE LEARNING USING SIMULATED CARDIOGRAMS” (Attorney Docket No.129292-8002.US00) and both claim the benefit of U.S. ProvisionalApplication No. 62/760,561, filed Nov. 13, 2018, entitled “RECORDABLATION PROCEDURE RESULTS IN A DISTRIBUTED LEDGER” (Attorney Docket No.129292-8014.US00) and are both a continuation-in-part of U.S.application Ser. No. 16/042,984, filed Jul. 23, 2018, entitled“GENERATING SIMULATED ANATOMIES OF AN ELECTROMAGNETIC SOURCE” (AttorneyDocket No. 129292-8003.US00), and are both a continuation-in-part ofU.S. application Ser. No. 16/042,953, filed Jul. 23, 2018, entitled“GENERATING A MODEL LIBRARY OF MODELS OF AN ELECTROMAGNETIC SOURCE”(Attorney Docket No. 129292-8004.US00) and are both acontinuation-in-part of U.S. application Ser. No. 16/042,973, filed Jul.23, 2018, and entitled “USER INTERFACE FOR PRESENTING SIMULATEDANATOMIES OF AN ELECTROMAGNETIC SOURCE” (Attorney Docket No.129292-8005.US00) and are both a continuation-in-part of U.S.application Ser. No. 16/042,993, filed Jul. 23, 2018, entitled“CONVERTING A POLYHEDRAL MESH REPRESENTING AN ELECTROMAGNETIC SOURCE”(Attorney Docket No. 129292-8006.US00) and are both acontinuation-in-part of U.S. application Ser. No. 16/043,011, filed Jul.23, 2018, entitled “GENERATING APPROXIMATIONS OF CARDIOGRAMS FROMDIFFERENT SOURCE CONFIGURATIONS” (Attorney Docket No. 129292-8007.US00)and are both a continuation-in-part of U.S. application Ser. No.16/043,022, filed Jul. 23, 2018, entitled “BOOTSTRAPPING ASIMULATION-BASED ELECTROMAGNETIC OUTPUT OF A DIFFERENT ANATOMY”(Attorney Docket No. 129292-8008.US00) and are both acontinuation-in-part of U.S. application Ser. No. 16/043,034, filed Jul.23, 2018, entitled “IDENTIFYING AN ATTRIBUTE OF AN ELECTROMAGNETICSOURCE CONFIGURATION BY MATCHING SIMULATED AND PATIENT DATA” (AttorneyDocket No. 129292-8009.US00) and are both a continuation-in-part of U.S.application Ser. No. 16/043,041, filed Jul. 23, 2018, entitled “MACHINELEARNING USING CLINICAL AND SIMULATED DATA” (Attorney Docket No.129292-8010.US00) and are both a continuation-in-part of U.S.application Ser. No. 16/043,050, filed Jul. 23, 2018, entitled “DISPLAYOF AN ELECTROMAGNETIC SOURCE BASED ON A PATIENT-SPECIFIC MODEL”(Attorney Docket No. 129292-8011.US00) and are both acontinuation-in-part of U.S. application Ser. No. 16/043,054, filed Jul.23, 2018, entitled “DISPLAY OF AN ELECTRICAL FORCE GENERATED BY ANELECTRICAL SOURCE WITHIN A BODY” (Attorney Docket No. 129292-8012.US00)and are both a continuation-in-part of U.S. application Ser. No.16/162,695, filed Oct. 17, 2018, entitled “MACHINE LEARNING USINGSIMULATED CARDIOGRAMS” (Attorney Docket No. 129292-8002.US01).International application PCT/US2019/029184 is also acontinuation-in-part of U.S. application Ser. No. 16/206,005, filed Nov.30, 2018, entitled “CALIBRATION OF SIMULATED CARDIOGRAMS” (AttorneyDocket No. 129292-8015.US00) and a continuation-in-part of U.S.application Ser. No. 16/247,463, filed Jan. 14, 2019, entitled “IDENTIFYABLATION PATTERN FOR USE IN AN ABLATION” (Attorney Docket No.129292-8016.US00), all of which are hereby incorporated by reference intheir entirety.

BACKGROUND

Many heart disorders can cause symptoms, morbidity (e.g., syncope orstroke), and mortality. Common heart disorders caused by arrhythmiasinclude inappropriate sinus tachycardia (“1ST”), ectopic atrial rhythm,junctional rhythm, ventricular escape rhythm, atrial fibrillation(“AF”), ventricular fibrillation (“VF”), focal atrial tachycardia(“focal AT”), atrial microreentry, ventricular tachycardia (“VT”),atrial flutter (“AFL”), premature ventricular complexes (“PVCs”),premature atrial complexes (“PACs”), atrioventricular nodal reentranttachycardia (“AVNRT”), atrioventricular reentrant tachycardia (“AVRT”),permanent junctional reciprocating tachycardia (“PJRT”), and junctionaltachycardia (“JT”). The sources of arrhythmias may include electricalrotors (e.g., ventricular fibrillation), recurring electrical focalsources (e.g., atrial tachycardia), anatomically based reentry (e.g.,ventricular tachycardia), and so on. These sources are important driversof sustained or clinically significant episodes. Arrhythmias can betreated with ablation using different technologies, includingradiofrequency energy ablation, cryoablation, ultrasound ablation, laserablation, external radiation sources, directed gene therapy, and so onby targeting the source of the heart disorder. Since the sources ofheart disorders and the locations of the source vary from patient topatient, even for common heart disorders, targeted therapies require thesource of the arrhythmia to be identified.

Unfortunately, current methods for reliably identifying the sourcelocations of the source of a heart disorder can be complex, cumbersome,and expensive. For example, one method uses an electrophysiologycatheter having a multi-electrode basket catheter that is inserted intothe heart (e.g., left ventricle) intravascularly to collect from withinthe heart measurements of the electrical activity of the heart, such asduring an induced episode of VF. The measurements can then be analyzedto help identify a possible source location. Presently,electrophysiology catheters are expensive (and generally limited to asingle use) and may lead to serious complications, including cardiacperforation and tamponade. Another method uses an exterior body surfacevest with electrodes to collect measurements from the patient's bodysurface, which can be analyzed to help identify an arrhythmia sourcelocation. Such body surface vests are expensive, are complex anddifficult to manufacture, and may interfere with the placement ofdefibrillator pads needed after inducing VF to collect measurementsduring the arrhythmia. In addition, the vest analysis requires acomputed tomography (“CT”) scan and is unable to sense theinterventricular and interatrial septa where approximately 20% ofarrhythmia sources may occur.

BRIEF DESCRIPTION OF THE DRAWINGS

This application contains at least one drawing executed in color. Copiesof this application with color drawing(s) will be provided by the Officeupon request and payment of the necessary fees.

FIG. 1 is a block diagram that illustrates the overall processing of theMLMO system in some embodiments.

FIG. 2 is a flow diagram that illustrates the overall processing ofgenerating a classifier by the MLMO system in some embodiments.

FIG. 3 is a block diagram that illustrates training and classifyingusing a convolutional neural network in some embodiments.

FIG. 4 is a flow diagram that illustrates processing of a generateclassifier component of the MLMO system in some embodiments.

FIG. 5 is a flow diagram that illustrates the processing of a generatesimulated VCGs component of the MLMO system in some embodiments.

FIG. 6 is a flow diagram that illustrates the processing of a generatetraining data component for cycles of the MLMO system in someembodiments.

FIG. 7 is a flow diagram that illustrates the processing of an identifycycles component of the MLMO system in some embodiments.

FIG. 8 is a block diagram that illustrates the processing of a normalizecycle component of the MLMO system in some embodiments.

FIG. 9 is a flow diagram that illustrates processing of a generatetraining data for a sequence of similar cycles component of the MLMOsystem in some embodiments.

FIG. 10 is a flow diagram that illustrates the processing of a classifycomponent of the MLMO system in some embodiments.

FIG. 11 is a block diagram illustrating components of the MLG system insome embodiments.

FIG. 12 is a block diagram that illustrates the generating of asimulated anatomy from seed anatomies.

FIG. 13 is a display page that illustrates a user experience for viewingsimulated anatomies in some embodiments.

FIG. 14 is a flow diagram that illustrates the processing of a generatemodel library component of the MLG system in some embodiments.

FIG. 15 is a flow diagram that illustrates the processing of a generatesimulated anatomies component of the MLG system in some embodiments.

FIG. 16 is a flow diagram that illustrates the processing of a generatesimulated anatomy component of the MLG system in some embodiments.

FIG. 17 is a flow diagram that illustrates the processing of a generatesource configurations component of the MLG system in some embodiments.

FIG. 18 is a flow diagram that illustrates the processing of a generatemodel component of the MLG system in some embodiments.

FIG. 19 is a flow diagram that illustrates the processing of a displaysimulated anatomy component of the MLG system in some embodiments.

FIG. 20 is a block diagram that illustrates the process of bootstrappinga simulation based on an EM mesh of a prior simulation with similaranatomical parameters.

FIG. 21 is a flow diagram that illustrates the processing of a componentto generate a voltage solution for a representative arrhythmia model ofa group of the MLG system in some embodiments.

FIG. 22 is a flow diagram that illustrates the processing of a generatevoltage solution component for a group of arrhythmia models based on arepresentative voltage solution of the MLG system in some embodiments.

FIG. 23 is a block diagram that illustrates the process of approximatinga cardiogram based on a voltage solution for an arrhythmia model withdifferent anatomical parameters.

FIG. 24 is a flow diagram that illustrates the processing of anapproximate VCG component of the MLG system in some embodiments.

FIG. 25 is a block diagram that illustrates the process of converting anarrhythmia model based on a first polyhedron to an arrhythmia modelbased on a second polyhedron in some embodiments.

FIG. 26 is a flow diagram that illustrates the processing of a convertpolyhedral model component of the MLG system in some embodiments.

FIG. 27 is a flow diagram that illustrates the processing of an identifyattributes component of the PM system in some embodiments.

FIG. 28 is a flow diagram that illustrates the processing of an identifymatching VCGs component of the PM system in some embodiments.

FIG. 29 is a flow diagram that illustrates the processing of an identifyclasses based on clustering component of the PM system in someembodiments.

FIG. 30 is a flow diagram that illustrates the processing of a generatecluster classifiers component of the PM system in some embodiments.

FIG. 31 is a block diagram that illustrates the overall processing of apatient classifier system of a MLCD system in some embodiments.

FIG. 32 is a flow diagram that illustrates the processing of a generatepatient classifier component of the patient classifier system in someembodiments.

FIG. 33 is a flow diagram that illustrates the processing of a generatecluster patient classifier of the patient classifier system in someembodiments.

FIG. 34 is a block diagram that illustrates components of apatient-specific model classifier system of a MLCD system in someembodiments.

FIG. 35 is a flow diagram that illustrates processing of a generatepatient-specific model classifier component of the PSMC system in someembodiments.

FIG. 36 is a flow diagram that illustrates the processing of an identifysimilar models component of the PSMC system in some embodiments.

FIG. 37 is a block diagram that illustrates the overall processing of apatient-specific model display system in some embodiments.

FIG. 38 is a flow diagram that illustrates the processing of a generatepatient heart display component of the PSMD system in some embodiments.

FIG. 39 is a flow diagram that illustrates the processing of a calculatedisplay values component of the PSMD system in some embodiments.

FIG. 40 illustrates various surface representations ofvectorcardiograms.

FIG. 41 is a flow diagram that illustrates the processing of a visualizeVCG component of the EFD system in some embodiments.

FIG. 42 is a flow diagram that illustrates the processing of a displayVCG surface representation component of the EFD system in someembodiments.

FIG. 43 is a flow diagram that illustrates processing of an identifysimulated cardiograms component of the CSC system in some embodiments.

FIG. 44 is a block diagram that illustrates components of the CSC systemin some embodiments.

FIG. 45 is a flow diagram that illustrates the processing performed byan electrophysiologist (“EP”) to collect patient data.

FIG. 46 is a flow diagram that illustrates processing of a calibratesimulated cardiograms component of the CSC system in some embodiments.

FIG. 47 is a flow diagram that illustrates the processing of a generatevectors components of the CSC system in some embodiments.

FIG. 48 flow diagram that illustrates the processing of the identifyorientation-similar component of the CSC system in some embodiments.

FIG. 49 is a flow diagram that illustrates the processing of a calibratecardiac geometry component of the CSC system in some embodiments.

FIG. 50 is a flow diagram that illustrates the processing of a calibrateaction potential component of the CSC system in some embodiments.

FIG. 51 is a flow diagram that illustrates the processing of a generatemapping function component of the CSC system in some embodiments.

FIG. 52 is a flow diagram that illustrates the processing of a transformsimulated cardiograms component of the CSC system in some embodiments.

FIG. 53 illustrates the user interface for manually calibratingorientation.

FIG. 54 is a flow diagram that illustrates the overall processing of theAPI system in some embodiments.

FIG. 55 is a flow diagram that illustrates the processing of a generatemapping function of the API system in some embodiments.

FIG. 56 is a block diagram that illustrates the processing of a methodfor treating a patient during an ablation in some embodiments.

FIG. 57 is a block diagram that illustrates components of the API systemin some embodiments.

FIG. 58 is a flow diagram that illustrates the processing of a generateablation pattern simulations component of the API system in someembodiments.

FIG. 59 is a block diagram illustrating the processing of a directablation component of the API system in some embodiments.

FIG. 60 is a flow diagram that illustrates the processing of an identifypotential ablation patterns component of the API system in someembodiments.

FIG. 61 is a flow diagram that illustrates the processing of a selectactual ablation pattern component of the API system in some embodiments.

FIG. 62 is a block diagram that illustrates components of the DLSRsystem in some embodiments.

FIG. 63 is a block diagram that illustrates the structure of a block andrecords within the block in some embodiments.

FIG. 64 is a flow diagram that illustrates the processing of a studysystem in some embodiments.

FIG. 65 is a flow diagram that illustrates the processing of atransaction generator system in some embodiments.

FIG. 66 is a flow diagram that illustrates the processing of a minersystem in some embodiments.

DETAILED DESCRIPTION

Methods and systems are provided for generating data representingelectromagnetic states (e.g., normal sinus rhythm versus ventricularfibrillation) of an electromagnetic source (e.g., a heart) within a bodyfor various purposes such as medical, scientific, research, andengineering purposes. The systems generate the data based on sourceconfigurations (e.g., dimensions of, and scar or fibrosis orpro-arrhythmic substrate location within, a heart) of theelectromagnetic source and a computational model of the electromagneticoutput of the electromagnetic source. The systems may dynamicallygenerate the source configurations to provide representative sourceconfigurations that may be found in a population. For each sourceconfiguration of the electromagnetic source, the systems run asimulation of the functioning of the electromagnetic source to generatemodeled electromagnetic output for that source configuration. Thesystems generate derived electromagnetic data (e.g., a vectorcardiogram)for each source configuration from the modeled electromagnetic output ofthat source configuration. The system may then use the modeledelectromagnetic output for various purposes such as identifyinglocations of disorders within the electromagnetic source of a patient'sbody, guiding a procedure to repair (e.g., directed gene therapy) ormodify (e.g., ablate) the electromagnetic source, predicting results ofa procedure on the electromagnetic source, analyzing genetic defects,and so on. The systems may include a machine learning based on modeledoutput system and a model library generation system, which are describedbelow.

Machine Learning Based on Modeled Output System

A method and a system are provided for generating a classifier forclassifying electromagnetic data derived from an electromagnetic sourcewithin a body. A body may be, for example, a human body, and theelectromagnetic source may be a heart, a brain, a liver, a lung, akidney, or another part of the body that generates an electromagneticfield that can be measured from outside or inside the body. Theelectromagnetic fields can be measured by various measuring devices(e.g., electrocardiograph and electroencephalograph) using, for example,one or more (e.g., 12) leads connected to electrodes attached to oradjacent to (e.g., via a smart watch device) a patient's body, a bodysurface vest worn by a patient, an intra-electromagnetic source device(e.g., a basket catheter), a cap worn by a patient, and so on. Themeasurements can be represented via a cardiogram such as anelectrocardiogram (“ECG”) and a vectorcardiogram (“VCG”), anelectroencephalogram (“EEG”), and so on. In some embodiments, a machinelearning based on modeled output (“MLMO”) system is provided to generatea classifier by modeling electromagnetic output of the electromagneticsource for a variety of source configurations and using machine learningto train a classifier using derived electromagnetic data that is derivedfrom the modeled electromagnetic output as training data. The MLMOsystem is described below primarily to generate a classifier forelectromagnetic data of the heart.

In some embodiments, the MLMO system employs a computational model ofthe electromagnetic source to generate training data for training theclassifier. A computational model models electromagnetic output of theelectromagnetic source over time based on a source configuration of theelectromagnetic source. The electromagnetic output may representelectrical potential, a current, a magnetic field, and so on. When theelectromagnetic (“EM”) source is a heart, the source configuration mayinclude any subset of the group consisting of information on geometryand muscle fibers of the heart, torso anatomy, normal and abnormalcardiac anatomy, normal and abnormal cardiac tissue, scar, fibrosis,inflammation, edema, accessory pathways, congenital heart disease,malignancy, sites of prior ablation, sites of prior surgery, sites ofexternal radiation therapy, pacing leads, implantablecardioverter-defibrillator leads, cardiac resynchronization therapyleads, pacemaker pulse generator location, implantablecardioverter-defibrillator pulse generator location, subcutaneousdefibrillator lead location, subcutaneous defibrillator pulse generatorlocation, leadless pacemaker location, other implanted hardware (e.g.,right or left ventricular assist devices), external defibrillationelectrodes, surface ECG leads, surface mapping leads, a mapping vest,other normal and pathophysiologic feature distributions, and so on, andthe EM output is a collection of the electric potentials at variousheart locations over time. To generate the EM output, a simulation maybe performed for simulation steps of a step size (e.g., 1 ms) togenerate an EM mesh for that step. The EM mesh may be a finite-elementmesh that stores the value of the electric potential at each heartlocation for that step. For example, the left ventricle may be definedas having approximately 70,000 heart locations with the EM mesh storingan electromagnetic value for each heart location. If so, a three-secondsimulation with a step size of 1 ms would generate 3,000 EM meshes thateach include 70,000 values. The collection of the EM meshes is the EMoutput for the simulation. A computational model is described in C. T.Villongco, D. E. Krummen, P. Stark, J. H. Omens, & A. D. McCulloch,“Patient-specific modeling of ventricular activation pattern usingsurface ECG-derived vectorcardiogram in bundle branch block,” Progressin Biophysics and Molecular Biology, Volume 115, Issues 2-3, August2014, Pages 305-313, which is hereby incorporated by reference. In someembodiments, the MLMO system may generate values for points between thevertices as the mesh, rather than just at the vertices. For example, theMLMO system may calculated the values for such points using a Gaussianquadrature technique.

In some embodiments, the MLMO system generates the training data byrunning many simulations, each based on a different sourceconfiguration, which is a set of different values for the configurationparameters of the computational model. For example, the configurationparameters for the heart may be cardiac geometry, rotor location, focalsource location, ventricular orientation in the chest, ventricularmyofiber orientation, cardiomyocyte intracellular potentialelectrogenesis and propagation, and so on. Each configuration parametermay have a set or range of possible values. For example, the rotorlocation may be 78 possible parameter sets corresponding to differentlocations within a ventricle. Since the MLMO system may run a simulationfor each combination of possible values, the number of simulations maybe in the millions.

In some embodiments, the MLMO system uses EM outputs of the simulationsto train the classifier for the generation of a classification based onEM data collected from a patient. The MLMO system may generate derivedEM data for each EM output of a simulation. The derived EM datacorrespond to EM data generated based on measurements that would becollected by an EM measuring devices that use, for example, 12 leads togenerate an ECG or a VCG, a body surface vest, an intra-electromagneticsource device, and so on. The ECG and VCG are equivalent sourcerepresentations of the EM output. The MLMO then generates a label (orlabels) for each derived EM data to specify its correspondingclassification. For example, the MLMO system may generate a label thatis the value of a configuration parameter (e.g., rotor location) usedwhen generating the EM output from which the EM data was derived. Thecollection of the derived EM data, which correspond to feature vectors,and their labels compose the training data for training the classifier.The MLMO system then trains the classifier. The classifier may be any ofa variety or combination of classifiers including neural networks suchas fully-connected, convolutional, recurrent, autoencoder, or restrictedBoltzmann machine, a support vector machine, a Bayesian classifier, andso on. When the classifier is a deep neural network, the trainingresults in a set of weights for the activation functions of the deepneural network. The classifier selected may be based on the type ofdisorder to be identified. For example, certain types of neural networksmay be able to effectively train based on focal sources, but not rotorsources.

In some embodiments, the MLMO system may augment the training data withadditional features from the configuration parameters of the sourceconfiguration used to generate the training data. For example, the MLMOsystem may generate additional features to represent the geometry of theheart, the orientation of the heart, scar or fibrosis or pro-arrhythmicsubstrate location or locations, ablation location, ablation shape, andso on. The MLMO system may input these additional features into thefully connected layer along with the output generated by the layerbefore the fully connected layer of a convolutional neural network(“CNN”), which is described below. The output of the layer before thefully connected layer (e.g., pooling layer) may be “flattened” into aone-dimensional array, and the MLMO system may add the additionalfeatures as further elements of the one-dimensional array. The output ofthe fully connected layer may provide a probability for each label usedin the training data. The probabilities will thus be based on thecombination of the derived EM data and the additional features. Theclassifier will be able to output different probabilities even when thederived EM data is the same or similar to reflect, for example, that thesame or similar EM data may be generated for patients with differentheart geometries and different scar or fibrosis or pro-arrhythmicsubstrate locations. The MLMO system may alternatively employ anadditional classifier that (1) inputs the probabilities generated by theCNN based only on the derived EM data and (2) inputs the additionalfeatures and then outputs a final probability for each classificationthat factors in the additional features. The additional classifier maybe, for example, a support vector machine. The CNN and the additionalclassifier may be trained in parallel.

In some embodiments, the MLMO system normalizes the VCGs of each cycleof the training data in both the voltage and time axes. A cycle may bedefined as a time interval (e.g., start time to end time) defining asingle unit or beat of periodic electrical activity during normal orabnormal rhythms. Cycles facilitate beat-by-beat analysis of sourceconfiguration evolution over time and enable subsequent voltage and timenormalization over each cycle. Normalization preserves salient featuresof voltage-time dynamics and improves generalizability of the trainingdata to variations in source configuration parameters (e.g., torsoconductivities, lead placement and resistance, myocardial conductionvelocity, action potential dynamics, overall heart size, etc.)anticipated in real patients. The MLMO system may normalize the voltagesto a range between −1 and 1 and the time to a fixed range of 0 to 1 inincrements of milliseconds or percentages. To normalize the voltages fora cycle, the MLMO system may identify the maximum magnitude of thevectors across the axes. The MLMO system divides each voltage by themaximum magnitude. To normalize the time axis, the MLMO system performsan interpolation from the number of points in the VCG, which may be moreor less than 1000, to the 1000 points of the normalized cycle.

In some embodiments, after the classifier is trained, the MLMO system isready to generate classifications based on EM and other routinelyavailable clinical data collected from patients. For example, an ECG maybe collected from a patient, and a VCG may be generated from the ECG.The VCG is input to the classifier to generate a classificationindicating, for example, a rotor location for the patient. As a result,even though the geometry of the patient's heart is not known or nosimulation was based on the same geometry as the patient's heart, theMLMO system can be used to generate a classification. If other patientmeasurements such as cardiac dimensions and orientation, scar orfibrosis or pro-arrhythmic substrate configuration, etc. are available,they may be included as input with the EM data to improve accuracy. Thisallows the classifier to effectively learn complex hidden features invarious clinical data that are not directly represented by the trainingdata.

In some embodiments, the MLMO system may classify source stability(i.e., the beat-to-beat consistency of a dominant arrhythmia sourcelocalized to a particular region in the heart) by generating trainingdata that is based on sequences of consecutive cycles that have similarEM features. A technique for determining the stability of arrhythmiasources is described in Krummen, D., et al., Rotor Stability SeparatesSustained Ventricular Fibrillation from Self-Terminating Episodes inHumans, Journal of American College of Cardiology, Vol. 63, No. 23,2014, which is hereby incorporated by reference. This referencedemonstrates the efficacy of targeted ablation at stable source sitesfor preventing recurring arrhythmic episodes. For example, given a VCG,the MLMO system may identify the cycles and then identify sequences oftwo consecutive cycles, three consecutive cycles, four consecutivecycles, and so on in which all the VCG cycles in the sequence are ofsimilar morphology to each other. Each identified sequence may belabeled based on the value of a parameter of the source configurationused to generate the VCG. The MLMO system may then train a separateclassifier for each sequence length (e.g., 2, 3, 4, and so on) using thetraining data for the sequences of that sequence length. For example,the MLMO system may train a classifier for sequences of two cycles and aseparate classifier for sequences of three cycles. To generate aclassification for a patient, the MLMO system may identify sequences ofsimilar cycles of varying sequence lengths in the VCG of the patient andinput those sequences into the classifier for the appropriate sequencelength. The MLMO system may then combine the classifications from allthe classifiers to arrive at a final classification or may simply outputall the classifications.

Although a classifier could be trained using actual patient ECGs or VCGsand corresponding intracardiac basket catheter measurements of sourcelocation, the cost of collecting, preparing, and labeling a sufficientnumber of data may currently be very expensive although advances intechnology may significantly reduce the cost. Also, training data basedon actual patients may currently be too sparse and noisy to beparticularly effective at training a classifier for a large populationalthough advances in collecting and storing of medical records mayresult in use of actual patient data being more effective. In someembodiments, the MLMO system could be trained using a combination ofactual patient VCGs and VCGs derived from simulations. The training datacollected from actual patients may be collected using various devicessuch as flexible electronics (e.g., an epidermal electronic system),smart clothing, and so on.

In some embodiments, the MLMO system could be trained using acombination of actual patient VCGs and VCGs derived from simulations.

FIG. 1 is a block diagram that illustrates the overall processing of theMLMO system in some embodiments. The MLMO system includes classifiergeneration components 110 and classification components 120. Thecomputational model for a heart is a heart model that may include dataand code stored in a heart model data store 111. A generate simulationscomponent 112 inputs the heart model and the parameter sets for thesimulations. The parameter sets, also referred to as sourceconfigurations, may include a parameter set for each combination ofpossible values of the parameters or may specify how to generate (e.g.,via a computer code) the parameter sets. For example, the computer codefor the rotor location parameter may include a list of possible rotorlocations and for the ventricle orientation parameter may dynamicallygenerate the values from a base orientation axis along with code forgenerating possible tilt angles from that base orientation such as anx-axis and a y-axis increment. The output of the generate simulationscomponent is stored in a voltage solutions data store 113 where avoltage solution is an EM output. A voltage solution is an example of anEM mesh. A generate VCGs component 114 generates a VCG from the voltagesolutions and stores the VCG in a VCG data store 115. The generate VCGscomponent may generate an ECG from the voltage solutions and thengenerate a VCG from the ECG. The generation of a VCG from an ECG isdescribed in J. A. Kors, G. Van Herpen, A. C. Sittig, & J. H. VanBemmel, “Reconstruction of the Frank vectorcardiogram from standardelectrocardiographic leads: diagnostic comparison of different methods,”European Heart Journal, Volume 11, Issue 12, 1 Dec. 1990, Pages1083-1092, which is hereby incorporated by reference. A generatetraining data component 116 inputs the VCGs and labels each VCG with alabel or labels that may be derived from the parameter sets and storesthe training data in a training data store 117. A label may be, forexample, the value of a parameter of the parameter set used to generatethe EM output from which the VCG is derived. A train classifiercomponent 118 inputs the training data, trains a classifier, and storesthe weights (e.g., of activation functions of a convolutional neuralnetwork) in a classifier weights data store 119. To generate aclassification, a collect ECG component 121 inputs an ECG collected froma patient. A generate VCG component 122 generates a VCG from the ECG. Aclassify component 123 inputs the VCG and generates a classificationusing the classifier weights of the trained classifier.

The computing systems (e.g., network nodes or collections of networknodes) on which the MLMO system and the other described systems may beimplemented may include a central processing unit, input devices, outputdevices (e.g., display devices and speakers), storage devices (e.g.,memory and disk drives), network interfaces, graphics processing units,cellular radio link interfaces, global positioning system devices, andso on. The input devices may include keyboards, pointing devices, touchscreens, gesture recognition devices (e.g., for air gestures), head andeye tracking devices, microphones for voice recognition, and so on. Thecomputing systems may include high-performance computing systems,cloud-based servers, desktop computers, laptops, tablets, e-readers,personal digital assistants, smartphones, gaming devices, servers, andso on. For example, the simulations and training may be performed usinga high-performance computing system, and the classifications may beperformed by a tablet. The computing systems may accesscomputer-readable media that include computer-readable storage media anddata transmission media. The computer-readable storage media aretangible storage means that do not include a transitory, propagatingsignal. Examples of computer-readable storage media include memory suchas primary memory, cache memory, and secondary memory (e.g., DVD) andother storage. The computer-readable storage media may have recorded onthem or may be encoded with computer-executable instructions or logicthat implements the MLMO system and the other described systems. Thedata transmission media are used for transmitting data via transitory,propagating signals or carrier waves (e.g., electromagnetism) via awired or wireless connection. The computing systems may include a securecryptoprocessor as part of a central processing unit for generating andsecurely storing keys and for encrypting and decrypting data using thekeys.

The MLMO system and the other described systems may be described in thegeneral context of computer-executable instructions, such as programmodules and components, executed by one or more computers, processors,or other devices. Generally, program modules or components includeroutines, programs, objects, data structures, and so on that performtasks or implement data types of the MLMO system and the other describedsystems. Typically, the functionality of the program modules may becombined or distributed as desired in various examples. Aspects of theMLMO system and the other described systems may be implemented inhardware using, for example, an application-specific integrated circuit(“ASIC”) or field programmable gate array (“FPGA”).

FIG. 2 is a flow diagram that illustrates the overall processing ofgenerating a classifier by the MLMO system in some embodiments. Agenerate classifier component 200 is executed to generate a classifier.In block 201, the component accesses the computational model to be usedto run the simulations. In block 202, the component selects the nextsource configuration (i.e., parameter set) to be used in a simulation.In decision block 203, if all the source configurations have alreadybeen selected, then the component continues at block 205, else thecomponent continues at block 204. In block 204, the component runs thesimulation using the selected source configuration to generate an EMoutput for the simulation and then loops to block 202 to select the nextsource configuration. In block 205, the component selects the next EMoutput that was generated by a simulation. In decision block 206, if allthe EM outputs have already been selected, then the component continuesat block 210, else the component continues at block 207. In block 207,the component derives the EM data from the EM output. For example, theEM output may be a collection of EM meshes, and the EM data may be anECG or a VCG derived from the electromagnetic values of the EM mesh. Insome embodiments, the component may in addition identify cycles(periodic intervals of arrhythmic activity) within the ECG or VCG. Acycle may be delimited by successive crossings from a negative voltageto a positive voltage (“positive crossings”) or successive crossingsfrom a positive voltage to a negative voltage (“negative crossings”)with respect to a spatial direction or set of directions comprising areference frame or set of reference frames. A reference frame maycoincide with anatomical axes (e.g., left-to-right with x,superior-to-inferior with y, anterior-to-posterior with z), imaging axes(e.g., CT, MR, or x-ray coordinate frames), body-surface lead vectors,principal axes computed by principal component analysis of measured orsimulated EM source configurations and outputs, or user-defineddirections of interest. For example, a three-second VCG may have threecycles, and each cycle may be delimited by the times of the positivecrossings along the x-axis. Alternatively, the cycles may be delimitedby crossings along the y-axis or z-axis. In addition, cycles may bedefined by negative crossings. Thus, in some embodiments, the componentmay generate training data from a single VCG based on various cycledefinitions that are various combinations of positive crossings andnegative crossings with the cycles for all the axes being defined bycrossings on one of the x-axis, y-axis, and z-axis or the cycles foreach defined by crossings on that axis. Moreover, the training data mayinclude cycles identified based on all possible cycle definitions or asubset of the cycle definition. For example, the training data mayinclude, for each axis, a cycle defined by positive crossings of thex-axis, negative crossings of the y-axis, and positive crossings of thataxis itself. Cycles definitions may also be defined by the timing ofelectrical events derived from the values stored in the EM mesh. Forexample, a point or set of points in the mesh may periodically crossvoltage thresholds signifying electrical activation and deactivation.Thus, a cycle may be defined by activation-deactivation, or successiveactivation-activation or deactivation-deactivation intervalscorresponding to a point or set of points within the mesh. The resultingtimings of these intervals can be co-localized to the ECG or VCG forcycles identification. In block 208, the component labels the EM databased on the source configuration (e.g., a source location). When cyclesare identified, the component may label each cycle with the same label.For example, the component may label the identified cycles with the samerotor location. In block 209, the component adds the EM data along withthe label to the training data and then loops to block 205 to select thenext EM output. In block 210, the component trains the classifier usingthe training data and then completes.

FIG. 3 is a block diagram that illustrates training and classifyingusing a convolutional neural network in some embodiments. Theconvolutional neural network may be one-dimensional in the sense that itinputs an image that is a single row of pixels with each pixel having ared, green, and blue (“RGB”) value. The MLMO system sets the values ofthe pixels based on the voltages of a VCG of the training data. Theimage has the same number of pixels as vectors of a VCG of the trainingdata. The MLMO system sets the red, green, and blue values of a pixel ofthe image to the x, y, and z values of the corresponding vector of theVCG. For example, if a cycle of a VCG is 1 second long, and the VCG hasa vector for each millisecond, then the image is 1 by 1000 pixels. Theone-dimensional convolutional neural network (“1D CNN”) trainer 310learns the weights of activation functions for the convolutional neuralnetwork using the training data 301. To generate a classification for apatient, the MLMO system provides the VCG 302 for the patient as aone-dimensional image. The 1D CNN 320 then classifies the VCG based onthe weights and outputs the classification, such as rotor location.

CNNs are a type of neural network that has been developed specificallyto process images. A CNN may be used to input an entire image and outputa classification of the image. For example, a CNN can be used toautomatically determine whether a scan of a patient indicates thepresence of an anomaly (e.g., tumor). The MLMO system considers thederived EM data to be a one-dimensional image. A CNN has multiple layerssuch as a convolution layer, a rectified linear unit (“ReLU”) layer, apooling layer, a fully connected (“FC”) layer, and so on. Some morecomplex CNNs may have multiple convolution layers, ReLU layers, poolinglayers, and FC layers.

A convolution layer may include multiple filters (also referred to askernels or activation functions). A filter inputs a convolution windowof an image, applies weights to each pixel of the convolution window,and outputs an activation value for that convolution window. Forexample, if the image is 256 by 256 pixels, the convolution window maybe 8 by 8 pixels. The filter may apply a different weight to each of the64 pixels in a convolution window to generate the activation value alsoreferred to as a feature value. The convolution layer may include, foreach filter, a node (also referred to as a neuron) for each pixel of theimage assuming a stride of one with appropriate padding. Each nodeoutputs a feature value based on a set of weights for the filter thatare learned during a training phase for that node. Continuing with theexample, the convolution layer may have 65,566 nodes (256*256) for eachfilter. The feature values generated by the nodes for a filter may beconsidered to form a convolution feature map with a height and width of256. If an assumption is made that the feature value calculated for aconvolution window at one location to identify a feature orcharacteristic (e.g., edge) would be useful to identify that feature ata different location, then all the nodes for a filter can share the sameset of weights. With the sharing of weights, both the training time andthe storage requirements can be significantly reduced. If each pixel ofan image is represented by multiple colors, then the convolution layermay include another dimension to represent each separate color. Also, ifthe image is a 3D image, the convolution layer may include yet anotherdimension for each image within the 3D image. In such a case, a filtermay input a 3D convolution window.

The ReLU layer may have a node for each node of the convolution layerthat generates a feature value. The generated feature values form a ReLUfeature map. The ReLU layer applies a filter to each feature value of aconvolution feature map to generate feature values for a ReLU featuremap. For example, a filter such as max(0, activation value) may be usedto ensure that the feature values of the ReLU feature map are notnegative.

The pooling layer may be used to reduce the size of the ReLU feature mapby downsampling the ReLU feature map to form a pooling feature map. Thepooling layer includes a pooling function that inputs a group of featurevalues of the ReLU feature map and outputs a feature value. For example,the pooling function may generate a feature value that is an average ofgroups of 2 by 2 feature values of the ReLU feature map. Continuing withthe example above, the pooling layer would have 128 by 128 poolingfeature map for each filter.

The FC layer includes some number of nodes that are each connected toevery feature value of the pooling feature maps. For example, if animage is to be classified as being a cat, dog, bird, mouse, or ferret,then the FC layer may include five nodes whose feature values providescores indicating the likelihood that an image contains one of theanimals. Each node has a filter with its own set of weights that areadapted to the type of the animal that the filter is to detect.

In the following, the MLMO system is described in reference to thefollowing data structures. The brackets indicate an array. For example,VCG[2].V[5].x represents the voltage for the x-axis for the fifth timeinterval in the second VCG. The data structures are further describedbelow when first referenced.

VCG Data Structures

VCG[ ]

-   -   size    -   V[ ]        -   x        -   y        -   z

nVCG

-   -   V[ ]        -   x        -   y        -   z

Cycles Data Structure

#C

C[ ]

-   -   start    -   end

Training Data Structure

#TD

TD[ ]

-   -   nVCG[ ]    -   label(s)

FIG. 4 is a flow diagram that illustrates detailed processing of thegenerate classifier component of the MLMO system in some embodiments.The generate classifier component 400 is invoked to generate aclassifier. In block 401, the component invokes a generate simulatedVCGs component to simulate VCGs (VCG[ ]) for a variety of parametersets. In blocks 402-405, the component loops, generating the trainingdata for each simulation. In block 402, the component sets an index i to1 for indexing the parameter sets. In decision block 403, if index i isequal to the number of parameter sets, then all the training data hasbeen generated and the component continues at block 406, else thecomponent continues at block 404. In block 404, the component invokes agenerate training data component, passing an indication of the indexedparameter set. In block 405, the component increments index i and thenloops to block 403. In block 406, the component invokes a trainclassifier component to train the classifier based on the generatedtraining data and then completes.

FIG. 5 is a flow diagram that illustrates the processing of a generatesimulated VCGs component of the MLMO system in some embodiments. Thegenerate simulated VCGs component 500 is invoked to generate a simulatedVCG for each parameter set. In block 501, the component sets an index ito 1 for indexing through the parameter sets. In decision block 502, ifindex i is greater than the number of parameter sets, then the componentcompletes, else the component continues at block 503. In block 503, thecomponent sets an index j to 1 for indexing through the simulationsteps. In decision block 504, if index j is greater than the number ofsimulation steps, then the simulation for the indexed parameter set iscomplete and the component continues at block 507, else the componentcontinues at block 505. In block 505, the component applies thecomputational model based on the indexed parameter set and the indexedsimulation step to generate a voltage solution (VS[j]) for the indexedsimulation step. In block 506, the component increments index j and thenloops to block 504 to process the next simulation step. In block 507,the component generates a VCG (VCG[i]) for the indexed parameter setfrom the voltage solution (VS[ ]) that was calculated for the parameterset. In block 508, the component increments index i and then loops toblock 502 to process the next parameter set.

FIG. 6 is a flow diagram that illustrates the processing of a generatetraining data component for cycles of the MLMO system in someembodiments. The generate training data component 600 is invoked,passing an index i, that indexes a VCG generated for a parameter set andgenerates the training data from the VCG. In block 601, the componentinvokes an identify cycles component, passing an indication of theindexed VCG (VCG[i]) and receiving a normalized VCG (nVCG[ ]) for eachcycle along with a count (#C) of the cycles that were identified. Inblock 602, the component sets an index k to 1 for indexing through thecycles. In decision block 603, if index k is greater than the count ofthe cycles, then the training data for all the cycles of the indexed VCGhas been generated and the component completes, else the componentcontinues at block 604. In block 604, the component increments a runningcount (#TD) of the training data (TD) that is used as an index into thetraining data. In block 605, the component sets the normalized nVCG ofthe indexed training data (TD[#TD].nVCG) to the portion of the VCGspecified by the indexed cycle. The component extracts the portion fromthe x-axis, y-axis, and z-axis as defined by the start and end points ofthe cycle. In block 606, the component sets the label(s) of the indexedtraining data based on the function of the indexed parameter set (e.g.,rotor location). In block 607, the component increments index k to indexto the next cycle and then loops to block 603 to process the next cycle.

FIG. 7 is a flow diagram that illustrates the processing of an identifycycles component of the MLMO system in some embodiments. The identifycycles component 700 is invoked to identify the cycles within a VCG andprovides the normalized VCGs (nVCG[ ]) for the cycles. In block 701, thecomponent initializes an index j to 2 for indexing through the VCG andsets an index k to 0 for indexing through the identified cycles. Indecision block 702, if index j is greater than the size of the VCG, thenthe component has identified all the cycles and the component completes,providing the normalized nVCG, else the component continues at block703. In block 703, if the prior voltage of the x-axis of the VCG(VCG.V[j-1].x) is greater than or equal to zero and the indexed voltageof the x-axis of the VCG (VCG.V[j].x) is less than zero (i.e., anegative crossing of the x-axis), then the start of a possible cycle hasbeen identified and the component continues at block 704 to identify thecycle, else the component continues at block 709. In block 704, thecomponent sets the start of the indexed cycle (C[k].start) equal toindex j. In decision block 705, if at least one cycle has already beenidentified, then the end of the prior cycle is known and the componentincrements index k and continues at block 706, else the componentincrements index k and continues at block 709. In block 706, thecomponent sets the end of the prior cycle to index j-1. In block 707,the component extracts the VCG (eVCG) for the prior indexed cycledelimited by the start and the end of the prior cycle. In block 708, thecomponent invokes a normalize cycle component, passing an indication ofthe extracted VCG (eVCG), and receives the normalized cycle (nVCG). Inblock 709, the component increments the index j for indexing through theVCG and loops to block 702.

FIG. 8 is a block diagram that illustrates the processing of a normalizecycle component of the MLMO system in some embodiments. The normalizecycle component 800 is invoked, passing an indication of the VCG of acycle, and normalizes the cycle. In block 801, the component identifiesthe maximum vector magnitude V′ of the vectors in the cycle. Forexample, a vector magnitude of a vector may be calculated by taking thesquare root of the sum of the squares of the x, y, and z values of thevector. In block 802, the component sets index i to index a next axis ofthe VCG. In decision block 803, if all the axes have already beenselected, then the component completes, providing the normalized VCG,else the component continues at block 804. In block 804, the componentinitializes an index j to 1 for indexing through the vectors of anormalized cycle. In decision block 805, if index j is greater than thenumber of vectors of a normalized cycle, then the component loops toblock 802 to select the next axis, else the component continues at block806. In block 806, the component sets the normalized VCG for the indexedvector for the indexed axis to an interpolation of the passed VCG, theindexed vector, and the maximum vector magnitude V′. The interpolationeffectively compresses or expands the VCG to the number of vectors inthe normalized VCG and divides the x, y, and z values of the vector bythe maximum vector magnitude V′. In block 807, the component incrementsthe index j and then loops to block 805.

FIG. 9 is a flow diagram that illustrates processing of a generatetraining data for a sequence of similar cycles component of the MLMOsystem in some embodiments. The generate training data for a sequence ofsimilar cycles component 900 is invoked to identify sequences of twoconsecutive cycles of the VCG indexed by the passed index i that aresimilar and generate training data based on the identified sequences ofsimilar cycles. The cycles in a sequence are similar according to asimilarity score that reflects the stability of the cycles. In block901, the component invokes the identify cycles component to identify thecycles (nVCG[ ]) for the VCG. In block 902, the component sets an indexj to 2 for indexing through the identified cycles. In decision block903, if index j is greater than the number of identified cycles, thenall the cycles have been indexed and then component completes, else thecomponent continues at block 904. In block 904, the component generatesa similarity score for the cycles indexed by j-1 and j. The similarityscore may be based on, for example, a cosine similarity, a Pearsoncorrelation, and so on. In decision block 905, if similarity score isabove a similarity score threshold (T) indicating similar cycles, then asequence of similar cycles has been identified and the componentcontinues at block 906, else the component continues at block 909. Inblock 906, the component increments a running count (#TD) of thetraining data. In block 907, the component sets the training data to thesequence of similar cycles. In block 908, the component sets the labelfor the training data to a label derived from the parameter set (PS[i])used to generate the VCG and then continues at block 909. In block 909,the component increments index i to select the next sequence of cyclesand loops to block 903.

FIG. 10 is a flow diagram that illustrates the processing of a classifycomponent of the MLMO system in some embodiments. The classify component1000 is invoked, passing a VCG derived from a patient, and outputs aclassification. In block 1001, the component invokes the identify cyclescomponent, passing an indication of the VCG, and receives the normalizedVCGs for the cycles and a count of cycles. In block 1002, the componentsets an index k to 1 for indexing through the cycles. In decision block1003, if index k is greater than the number of cycles, then thecomponent completes with the classifications, else the componentcontinues at block 1004. In block 1004, the component applies theclassifier to the indexed cycle to generate the classification. In block1005, the component increments the index and then loops to block 1003 toprocess the next cycle. A different classification (e.g., differentrotor location) may be generated for each cycle. In such a case, theoverall classification may be derived from the combination of thedifferent classifications (e.g., average of the rotor locations).

Model Library Generation System

A method and system for generating a model library of models of an EMsource within a body is provided. In some embodiments, a model librarygeneration (“MLG”) system generates models based on sourceconfigurations with configuration parameters that include anatomicalparameters and electrophysiology parameters for the EM source. Theanatomical parameters specify dimensions or overall geometry of the EMsource. When the EM source is a heart, then the models may be arrhythmiamodels based on anatomical parameters that may include any subset of thegroup consisting of thickness of a heart wall (e.g., thickness of theendocardium, myocardium, and epicardium), dimensions of chambers,diameters, ventricular orientation in the chest, torso anatomy, fiberarchitecture, the location(s) of scar, fibrosis, and pro-arrhythmiasubstrate, scar shape and so on. The geometry of a heart may be measuredwhen maximal chamber volume and minimal wall thickness and activationoccur. With normal sinus, activation occurs at the time of theend-diastolic portion of a beat. With an arrhythmia, activation mayoccur at a different time during a beat. Therefore, the MLG system mayallow the geometry to be specified at times other than the end-diastolicportion. The torso anatomy may be used tailor the EM output based on thesize, shape, composition, and so on of the torso. The electrophysiologyparameters are the non-anatomical parameters that may include any subsetof the group consisting of inflammation, edema, accessory pathways,congenital heart disease, malignancy, sites of prior ablation, sites ofprior surgery, sites of external radiation therapy, pacing leads,implantable cardioverter-defibrillator leads, cardiac resynchronizationtherapy leads, pacemaker pulse generator location, implantablecardioverter-defibrillator pulse generator location, subcutaneousdefibrillator lead location, subcutaneous defibrillator pulse generatorlocation, leadless pacemaker location, other implanted hardware (e.g.,right or left ventricular assist devices), external defibrillationelectrodes, surface ECG leads, surface mapping leads, a mapping vest,and other normal and pathophysiologic feature distributions, actionpotential dynamics, conductivities, arrhythmia source location, and soon. The configuration parameters that are selected for a simulation maybe based on the machine learning algorithm employed. For example, thefiber architecture parameter may be selected for a convolutional neuralnetwork, but not for other types of neural networks. The MLG systemgenerates source configurations from which the arrhythmia models aregenerated. For each source configuration, the MLG system generates anarrhythmia model that includes a mesh and model parameter such asvariable weights for the arrhythmia model. The MLG system generates themesh based on the anatomical parameters. After the computational mesh isgenerated, the MLG generates model parameters of the arrhythmia model atpoint within the mesh based on the electrophysiology parameters of thatsource configuration. The electrophysiology parameters control themodeling of, for example, the electromagnetic propagation at that pointbased on the electrophysiology parameters. The collection of arrhythmiamodels forms an arrhythmia model library. The MLMO system can thengenerate a modeled EM output for each arrhythmia model and use themodeled EM outputs to train a classifier. The arrhythmia model librarymay be used for other purposes such as studying the efficacy ofdifferent types of ablations.

In some embodiments, the MLG system generates sets of anatomicalparameters for the heart, with each set having a value (e.g., scalar,vector, or tensor) for each anatomical parameter. A set of anatomicalparameters specifies an anatomy of a heart. The MLG system generatessimulated anatomies that are based on a set of seed anatomies(specifying values for the dimensions of the EM source) and sets ofweights that include a weight for each seed anatomy. The seed anatomiesmay also include values for features derived from the specified valuessuch as the mass, the volume, ratios of length and width, thesphericity, and so on of a chamber. The seed anatomies may representextreme anatomies found in patients. For example, the seed anatomies maybe generated from ultrasound, computed tomography, and magneticresonance imaging scans of patients who have extreme heart conditionssuch as an enlarged right ventricle, a very thick or thin endocardium,and so on. The MLG system generates a simulated anatomy for each set ofweights. Each weight in a set of weights indicates the contribution ofthe anatomical parameters of a seed anatomy to a simulated anatomy. Forexample, if four seed anatomies are specified, then the weights may be0.4, 0.3, 0.2, and 0.1. The MLG system sets the value of each anatomicalparameter for a simulated anatomy for a set of weights to a weightedaverage of the values of each anatomical parameter of the seedanatomies. The MLG system may use various techniques for generating thesets of weights, such as defining a fixed interval (e.g., 0.001),randomly selecting weights that add to 1.0, using adesign-of-experiments technique, and so on. The MLG system may alsovalidate the simulated anatomies based on comparison of the anatomicalparameters to actual anatomical parameters of actual patients. Forexample, if the combination of a height, width, and depth of a heartchamber results in a volume that has not been seen in an actual patient(e.g., not found in a patient population), then the MLG system maydiscard that simulated anatomy as it is unlikely to appear in an actualpatient.

In some embodiments, the MLG system may employ a bootstrapping techniqueto speed up the generating of the modeled EM output based on thearrhythmia models. Since a mesh for a left ventricle may have 70,000vertices, a simulation to generate the modeled EM output for anarrhythmia model for the left ventricle would require the calculation of70,000 values per EM mesh. If the simulation is for three seconds with astep size of 1 ms, then 70×10⁶ values for the vertices would need to becalculated. If the arrhythmia model library includes a millionarrhythmia models, then the number of values that need to be calculatedwould be 70×10¹². In addition, the calculation of a single value mayinvolve many mathematical operations, and multiple values may becalculated for each vertex. To help reduce the number of values thatneed to be calculated, the MLG system effectively shares some of thevalues for the EM meshes generated for one simulation based on onearrhythmia model with another simulation that is based on anotherarrhythmia model. For example, when a simulation is started, it may takeapproximately one second before some of the values of the EM mesh havean appreciable effect on the values. For example, at the one-secondpoint in simulations, the EM meshes for simulations based on arrhythmiamodels with the same source configuration except for scar or fibrosis orpro-arrhythmic substrate location may have very similar values. Toreduce the number of values that need to be calculated, the MLG systemgroups together arrhythmia models with source configurations that arethe same or nearly the same except for their scar or fibrosis orpro-arrhythmic substrate locations. The groupings may also not factor inconduction velocity and action potential parameters. The MLG system thenruns the simulation for a representative arrhythmia model of the group(e.g., one without a scar or fibrosis or pro-arrhythmic substratelocation). To run the simulations for the other arrhythmia models, theMLG system sets the values of the initial EM meshes to the values of theEM mesh at the one-second point in the simulation for the representativearrhythmia model. The MLG system then runs the other simulations for twoseconds starting with the values of the initial EM mesh. The modeled EMoutput for each other arrhythmia model includes the EM meshes for thefirst second of the representative arrhythmia model and the EM meshesfor the two seconds of that other arrhythmia model. In this way, the MLGsystem can significantly reduce the number of values (e.g.,approximately by one-third) that need to be calculated during some ofthe simulations, which can significantly speed up the generating of themodel EM output or voltage solutions for an arrhythmia model library.

In some embodiments, the MLG system may employ other bootstrappingtechniques to speed up the generating of modeled EM output. Onebootstrapping technique may allow for rapid generation for differentconfiguration parameters such as different geometries, different actionpotentials, and different conductivity parameters. For example, for agiven focal or rotor source location and a set of set of otherconfiguration parameters, a simulation may be run for two seconds. TheEM mesh from that simulation is then modified based on a differentgeometry, or the model parameters are adjusted based on different actionpotentials or conductivity parameters. The simulation is then continued.It may take a second or so for the activation potentials to stabilizebased on the different configuration parameters. Another bootstrappingtechnique speeds up the generation for a rotor anchored to a differentscar location. For example, for a given anchoring scar location, thesimulation may be run for two seconds. After the first second, the rotormay stabilize anchored to the scar location. During the second,sufficient modeled EM output is simulated to generate a cardiogram. TheEM mesh from that simulation is then modified to have the anchoring scarlocation moved nearby and possibly modified based on a differentgeometry. The simulation is then continued. The simulation will allowthe rotor to detach from the prior anchoring scar location and attach tothe new anchoring scar location. Once attached, the modeled EM outputfor the next second or so can be used to generate ECGs or VCGs. Also,rather than modifying the anchoring scar location, an ablation shape andpattern can be added to the EM mesh to simulate the effect of thatablation, or the configuration of the anchoring scar may be modified torapidly simulate the effect of that configuration.

In some embodiments, the MLG system may speed up the generating ofderived EM data that is derived from the modeled EM outputs generatedfor the arrhythmia models of the arrhythmia model libraries. The derivedEM data may be a VCG (or other cardiogram) generated from a modeled EMoutput (e.g., 3,000 EM meshes). The MLG system may group togetherarrhythmia models with source configurations that have similaranatomical parameters. Each arrhythmia model in a group will thus havesimilar electrophysiology parameters and different anatomicalparameters. The MLG system then runs the simulation for a representativearrhythmia model of the group. The MLG system, however, does not need torun the simulations for the other arrhythmia models in the group. Togenerate the VCG for one of the other arrhythmia models, the MLG systeminputs the modeled EM output of the representative arrhythmia model andthe anatomical parameters of the other arrhythmia model. The MLG systemthen calculates the VCG values for the other arrhythmia model based onthe values of the modeled EM output with adjustments based ondifferences in the anatomical parameters of the representativearrhythmia model and the other source configuration. In this way, theMLG system avoids running any simulations except for the representativearrhythmia model of each group of arrhythmia models.

In some embodiments, the MLG system converts the arrhythmia models basedon one polyhedral model to arrhythmia models based on another polyhedralmodel. Different finite-mesh problem solvers may be based on differentpolyhedral models. For example, one polyhedral model may be a hexahedralmodel, and another polyhedral model may be a tetrahedral model. With ahexahedral model, a mesh is filled with hexahedrons. With a tetrahedralmodel, a mesh is filled with tetrahedrons. If an arrhythmia modellibrary is generated based on a hexahedral model, that arrhythmialibrary cannot be input to a tetrahedral problem solver. A separatearrhythmia model library based on a tetrahedral model could be generatedbased on the source configurations, but it would be computationallyexpensive to do so. To reduce this computational expense of generating atetrahedral arrhythmia model library, the MLG system converts hexahedralarrhythmia models to tetrahedral arrhythmia models. To convert atetrahedral arrhythmia model, the MLG system generates a surfacerepresentation of the tetrahedral arrhythmia model, for example, basedon the surface faces of the mesh of the hexahedral arrhythmia model. TheMLG system then populates the volume formed by the surfacerepresentation with tetrahedrons to generate a tetrahedral mesh. The MLGsystem then generates a value for each vertex of the tetrahedral mesh byinterpolating the values of the vertices of the hexahedral mesh that areproximate to that vertex of the tetrahedral mesh. In this way, the MLGsystem can use an arrhythmia model library for one type of polyhedron togenerate an arrhythmia model library for another type of polyhedron andavoid the computational expense of generating the arrhythmia modellibrary for the other type of polyhedron from source configurations. TheMLG system may also convert an arrhythmia model from one polyhedralmodel to another polyhedral model for display of the electromagneticsource. For example, the MLG system may run a simulation using ahexahedral ventricular mesh and then, for display, convert to asurface-triangle ventricular mesh to provide a more realistic lookingdisplay of the ventricle.

FIG. 11 is a block diagram illustrating components of the MLG system insome embodiments. The MLG system 1100 includes a generate model librarycomponent 1101, a generate simulated anatomies component 1102, agenerate simulated anatomy component 1103, a generate sourceconfigurations component 1104, a generate model component 1105, adisplay simulated anatomy component 1106, a generate voltage solutionfor representative component 1107, a generate voltage solution for groupcomponent 1108, an approximate VCGs component 1109, and a convertpolyhedral model component 1110. The MLG system also includes a modellibrary 1111 that stores arrhythmia models, a seed anatomy library 1112,which stores seed anatomies (for example, of a heart), and a simulatedanatomy library 1113, which stores simulated anatomies (for example, ofa heart). The generate model library component controls the overallgeneration of the model library. The generate simulated anatomiescomponent generates the simulated anatomies for various sets of weightsby invoking the generate simulated anatomy component for each set ofweights. The generate source configurations component generates varioussource configurations based on the simulated anatomies and possiblevalues for electrophysiology parameters. The generate model componentgenerates a model based on a source configuration. The display simulatedanatomy component may provide an application programming interface or auser experience for specifying the sets of weights and viewing seed andsimulated anatomies. The generate voltage solution for representativecomponent generates a voltage solution for a representative sourceconfiguration of a group. The generate voltage solution for groupcomponent generates voltage solutions for source configurations in agroup based on bootstrapping using the voltage solution for arepresentative source configuration. The approximate VCGs componentgenerates an approximate VCG based on a voltage solution for similarsource configuration but with different anatomical parameters. Theconvert polyhedral model component converts a hexahedral model to atetrahedral model.

FIG. 12 is a block diagram that illustrates the generating of asimulated anatomy from seed anatomies. In this example, seed anatomies1201-1206 are used to generate a simulated anatomy 1210. Each seedanatomy has an associated weight that specifies the contribution of theseed anatomy to the simulated anatomy. The weights may sum to 1.0. Insome embodiments, rather than a single weight for each seed anatomy, theMLG system may employ a weight for each anatomy parameter of the seedgeometry. For example, the weights may include a weight for dimensionsof a heart chamber, a weight for the thickness of a heart wall, and soon. The weights for an anatomy parameter of the seed anatomies may sumto 1.0. For example, the weights of seed anatomies 1201-1206 may be 0.1,0.1, 0.1, 0.1, 0.3, and 0.3, respectively, for the dimensions of theleft ventricle and 0.2, 0.2, 0.2, 0.2, 0.1, and 0.1, respectively, forthe thickness of an endocardium, myocardium, and epicardium.Alternatively, the weights for the seed anatomies or an anatomicalparameter of the seed anatomies need not sum to 1.0.

FIG. 13 is a display page that illustrates a user experience for viewingsimulated anatomies in some embodiments. A display page 1300 includes agraphics area 1310, a weights area 1320, and an options area 1330. Thegraphics area displays a graphic of each seed anatomy of a heart and theweights along with a graphic of the simulated anatomy of the heart basedon those weights. A user can use the weights area to specify the weightof each seed anatomy. The user may use the options area to addadditional seed anatomies, delete a seed anatomy, and specify weightrules based on a user interface (not illustrated) for each option. TheMLG system may specify a data structure for storing the anatomicalparameters of a seed anatomy. A user can upload the data structure whenadding a new seed anatomy. The MLG system may also allow a user tocreate a library of seed anatomies that can be used to generatesimulated anatomies. A weight rule specifies how to generate sets ofweights for a library of simulated anatomies. For example, a weight rulemay specify to generate every combination of sets of unnormalizedweights that range between 0.0 and 1.0 in increments of 0.2 and thennormalize the weights so that the weights in each set of weights sums to1.0. Given this weight rule and six seed anatomies, 5×10⁶ sets ofweights are specified. The graphics may be generated using a 3D computergraphics software toolset such as Blender.

FIG. 14 is a flow diagram that illustrates the processing of a generatemodel library component of the MLG system in some embodiments. Thegenerate model library component 1400 is invoked to generate a modellibrary, such as an arrhythmia model library, based on seed anatomiesand, for each model, a set of weights for the seed anatomies forgenerating the anatomical parameters along with electrophysiologyparameter specifications that specify the range of values for eachelectrophysiology parameter. The component generates sourceconfigurations from combinations of the anatomical parameters andelectrophysiology parameters. In block 1401, the component invokes agenerate simulated anatomies component to generate the simulatedanatomies from the seed anatomies. In block 1402, the component invokesa generate source configurations component to generate the sourceconfigurations based on the anatomical parameters of the simulatedanatomies and the electrophysiology parameter specifications. In blocks1403-1406, the component loops, generating a model for each sourceconfiguration. In block 1403, the component selects the next sourceconfiguration i. In decision block 1404, if all the sourceconfigurations have already been selected, then the component completes,else the component continues at block 1405. In block 1405, the componentinvokes a generate model component, passing an indication of the sourceconfiguration i, to generate a model (model[i]) for that sourceconfiguration. In block 1406, the component adds the generated model tothe model library and then loops to block 1403 to select the next sourceconfiguration.

FIG. 15 is a flow diagram that illustrates the processing of a generatesimulated anatomies component of the MLG system in some embodiments. Thegenerate simulated anatomies component 1500 is invoked to generatesimulated anatomies based on seed anatomies and associated sets ofweights. In block 1501, the component selects the next set of weights i.In decision block 1502, if all the sets of weights have already beenselected, then the component completes, else the component continues atblock 1503. In block 1503, the component invokes the generate simulatedanatomy component, passing an indication of the selected set of weightsi and receiving an indication of the anatomical parameters for thesimulated anatomy. In block 1504, the component stores the anatomicalparameters and then loops to block 1501 to select the next set ofweights.

FIG. 16 is a flow diagram that illustrates the processing of a generatesimulated anatomy component of the MLG system in some embodiments. Thegenerate simulated anatomy component 1600 is invoked, passing anindication of a set of weights, and generates a simulated anatomy basedon that set of weights. In block 1601, the component selects the nextanatomical parameter i. In decision block 1602, if all the anatomicalparameters have already been selected, then the component returns anindication of the anatomical parameters for the simulated anatomy, elsethe component continues at block 1603. In block 1603, the componentinitializes the selected anatomical parameter i. In blocks 1604-1606,the component loops, adjusting the selected anatomical parameter basedon the weights and the value for that anatomical parameter for each seedanatomy. In block 1604, the component selects the next seed anatomy j.In decision block 1605, if all the seed anatomies have already beenselected, then the component loops to block 1601 to select the nextanatomical parameter, else the component continues at block 1606. Inblock 1606, the component sets the selected anatomical parameter i tothe sum of the selected anatomical parameter i and that anatomicalparameter i for the selected seed anatomy j divided by the weight forthe selected seed anatomy. The component then loops to block 1604 toselect the next seed anatomy.

FIG. 17 is a flow diagram that illustrates the processing of a generatesource configurations component of the MLG system in some embodiments.The generate source configurations component 1700 is invoked to generatesource configurations for use in generating a model library. A sourceconfiguration is specified by a simulated anatomy and a combination ofvalues of anatomical parameters. In block 1701, the component selects anext simulated anatomy. In decision block 1702, if all the simulatedanatomies have already been selected, then the component completes, elsethe component continues at block 1703. In blocks 1703-1707, thecomponent loops, selecting sets of anatomical parameters for theselected simulated anatomy. In block 1703, the component selects thenext value for the fiber architecture anatomical parameter. In decisionblock 1704, if all the values for the fiber architecture anatomicalparameter have already been selected for the selected simulated anatomy,then all the source configurations for the selected simulated anatomyhave been generated and the component loops to block 1701 to select thenext simulated anatomy, else the component continues to select a valuefor each of the other anatomical parameters, as illustrated by theellipsis. In block 1705, the component selects the next source locationfor the selected simulated anatomy and set of values for the otheranatomical parameters. In decision block 1706, if all the sourcelocations have already been selected for the selected simulated anatomyand set of values for the other anatomical parameters, then thecomponent loops to block 1705 to select a new set of values. In block1707, the component stores an indication of the selected simulatedanatomy and the set of selected values for the anatomical parameters asa source configuration and then loops to block 1705 to select the nextsource location.

FIG. 18 is a flow diagram that illustrates the processing of a generatemodel component of the MLG system in some embodiments. The generatemodel component 1800 is invoked, passing an indication of a sourceconfiguration i, and generates a model. The model includes one or moremodel parameters for each vertex of a mesh representing the simulatedanatomy of the source configuration. In block 1801, the componentgenerates the mesh based on the anatomical parameters. The mesh may berepresented by a data structure that includes, for each vertex, areference to its adjacent vertices explicitly or implicitly along with avalue for one or more model parameters for use in generating, forexample, a voltage for that vertex. In block 1802, the component selectsthe next vertex j. In decision block 1803, if all the vertices havealready been selected, then the component completes, else the componentcontinues at block 1804. In block 1804, the component selects the nextmodel parameter k of the computational model for the selected vertex. Indecision block 1805, if all the model parameters have already beenselected, then the component loops to block 1802 to select the nextvertex, else the component continues at block 1806. In block 1806, thecomponent calculates the selected model parameter k for the selectedvertex j based on the source configuration i and then loops to block1804 to select the next model parameter.

FIG. 19 is a flow diagram that illustrates the processing of a displaysimulated anatomy component of the MLG system in some embodiments. Thedisplay simulated anatomy component 1900 is invoked to display asimulated anatomy that has been generated based on seed anatomies. Inblock 1901, the component displays a simulated representation of asimulated anatomy, such as graphic 1311. In blocks 1902-1906, thecomponent loops, displaying a seed representation of each seed anatomy.In block 1902, the component selects the next seed anatomy that was usedto generate the simulated anatomy. In decision block 1903, if all theseed anatomies have already been selected, then the component continuesat block 1907, else the component continues at block 1904. In block1904, the component displays a seed representation of the selected seedanatomy, such as graphics 1301-1306. In block 1905, the componentdisplays an arrow from the seed representation to the simulatedrepresentation. In block 1906, the component displays the weightassociated with the seed anatomy adjacent to the arrow and then loops toblock 1902 to select the next seed anatomy. In decision block 1907, if auser indicates to change the weight, then the component continues atblock 1908, else the component completes. In block 1908, the componentdisplays a new simulated representation of a simulated anatomy that isbased on the changed weight. The component may invoke the generatesimulated anatomy component to generate the simulated anatomy and acomponent to generate the graphic for the simulated anatomy. In block1909, the component displays the changed weight near the arrow from theseed representation of the seed anatomy whose weight has been changedand then completes.

FIG. 20 is a block diagram that illustrates the process of bootstrappinga simulation based on an EM mesh of a prior simulation with similaranatomical parameters. The simulation may be bootstrapped based on aprior simulation that in turn is based on an arrhythmia model for thesame source configuration except for different scar or fibrosis orpro-arrhythmic substrate locations. To generate the initial EM mesh, agenerate simulation component 2020 inputs an arrhythmia model 2010 witha first scar or fibrosis or pro-arrhythmic substrate location andoutputs a voltage solution 2030. The generate simulation component 2020includes an initialize mesh to default component 2021 and a runsimulation component 2022. The initialize EM mesh component initializesan EM mesh with default values for the voltages of the vertices. The runsimulation component 2022 runs a simulation (e.g., for 3 seconds) basedon the initialized EM mesh and the arrhythmia model 2010 to generate avoltage solution (e.g., 3,000 EM meshes) and outputs the voltagesolution 2030. To bootstrap a simulation, a generate simulationcomponent 2060 inputs an arrhythmia model 2050 with a second scar orfibrosis or pro-arrhythmic substrate location and outputs a voltagesolution 2070. The generate simulation component 2060 includes aninitialize EM mesh based on voltage solution component 2061 and a runsimulation component 2062. The initialize EM mesh based on voltagesolution component 2061 inputs the voltage solution 2030 and initializesthe EM mesh to, for example, the EM mesh corresponding to the one-secondpoint of the voltage solution 2030. The run simulation component 2062runs a simulation based on the initialized EM mesh. For example, if thesimulations are three seconds and the initialized EM mesh is based on anEM mesh at the one-second point, then the run simulation component 2062runs a simulation for two additional seconds. The run simulationcomponent 2062 stores the voltage solution in a voltage solution store2070.

FIG. 21 is a flow diagram that illustrates the processing of a componentto generate a voltage solution for a representative arrhythmia model ofa group of the MLG system in some embodiments. The generate voltagesolution for representative component 2100 generates a voltage solutionfor an arrhythmia model i. In block 2101, the component initializes anindex j to track the number of simulation steps. In decision block 2102,if the index j is greater than the number of simulation steps, then thecomponent completes, indicating the voltage solution, else the componentcontinues at block 2103. In block 2103, the component applies thecomputational model based on the arrhythmia model and the selectedsimulation step to generate a voltage solution for the selectedsimulation step. In block 2104, the component increments to the nextsimulation step and loops to block 2102.

FIG. 22 is a flow diagram that illustrates the processing of a generatevoltage solution component for a group of arrhythmia models based on arepresentative voltage solution of the MLG system in some embodiments.The generate voltage solution for group component 2200 is passed anindication of a representative voltage solution and a set of arrhythmiamodels. In block 2201, the component selects the next arrhythmia modeli. In decision block 2202, if all the arrhythmia models have alreadybeen selected, then the component completes, else the componentcontinues at block 2203. In block 2203, the component initializes thevoltage solution for the selected arrhythmia model to the representativevoltage solution for the first 1000 simulation steps. In blocks2204-2206, the component loops, running the simulation starting atsimulation step 1001 and continuing to the end of the simulation. Inblock 2204, the component selects the next simulation step j, startingat simulation step 1001. In decision block 2205, if the currentsimulation step is greater than the number of simulation steps, then thecomponent loops to block 2201 to select the next arrhythmia model, elsethe component continues at block 2206. In block 2206, the componentapplies the arrhythmia model based on the simulation step to generate avoltage solution for the simulation step and then loops to block 2204 toselect the next simulation step.

FIG. 23 is a block diagram that illustrates the process of approximatinga vectorcardiogram based on a voltage solution for an arrhythmia modelwith different anatomical parameters. To generate the voltage solutionfor an arrhythmia model 2301 based on a first set of anatomicalparameters, a generate simulation component 2302 inputs the arrhythmiamodel and outputs a voltage solution 2303. A generate VCG component 2304then generates a VCG from the voltage solution and stores it in a VCGstore 2305. To approximate a VCG for an arrhythmia model based on asimilar source configuration but with different anatomical parameters,an approximate VCG component 2314 inputs an arrhythmia model 2311,generates an approximate VCG, and outputs the VCG 2315.

FIG. 24 is a flow diagram that illustrates the processing of anapproximate VCG component of the MLG system in some embodiments. Theapproximate VCG component 2400 inputs a voltage solution (“VS1”)generated based on a first arrhythmia model with first anatomicalparameters and approximates a VCG for a second arrhythmia model withsecond anatomical parameters. In block 2401, the component sets an indexi for indexing through the simulation steps. In decision block 2402, ifindex i is greater than the number of simulations steps, then thecomponent continues at block 2408, else the component continues at block2403. In block 2403, the component sets an index j for indexing throughthe points (e.g., vertices or Gaussian points) of the mesh of anarrhythmia model. In decision block 2404, if index j is greater than thenumber of points, then the component continues at block 2407, else thecomponent continues at block 2405. In block 2405, the component sets thevalue for the voltage solution (“VS2”) for the second arrhythmia modelat the index simulation step and point to the corresponding value forthe voltage solution of the first arrhythmia model. In block 2405, thecomponent increments index j and loops to block 2404. In block 2407, thecomponent increments index i and loops to block 2402. In block 2408, thecomponent generates the VCG for the second arrhythmia model based on thegenerated voltage solution VS2 and then completes.

FIG. 25 is a block diagram that illustrates the process of converting anarrhythmia model based on a first polyhedron to an arrhythmia modelbased on a second polyhedron in some embodiments. A first polyhedronarrhythmia model of a first polyhedron arrhythmia model 2501 is input toan extract surface component 2502. The extract surface componentextracts the surface of the mesh of the arrhythmia model. A populatewith second polyhedrons component 2303 inputs the surface and populatesthe volume within the surface with the second type of polyhedrons. Aninterpolate model parameters component 2504 inputs the second polyhedronmesh and the first polyhedral model and generates model parameters ofthe second polyhedral model and outputs the second polyhedral model2505.

FIG. 26 is a flow diagram that illustrates the processing of a convertpolyhedral model component of the MLG system in some embodiments. Aconvert polyhedral model component 2600 is invoked to convert ahexahedral model to a tetrahedral model. In block 2601, the componentextracts the surface from the hexahedral model. In block 2602, thecomponent generates a tetrahedral mesh based on the surface of thehexahedral model. In block 2603, the component maps the vertices of thetetrahedral mesh to the space of the hexahedral mesh of the hexahedralmodel, for example, setting the locations of the vertices relative tothe same origin. In block 2604, the component selects the next vertex jof the tetrahedral mesh. In decision block 2605, if all such verticeshave already been selected, then the component completes, else thecomponent continues at 2606. In block 2606, the component selects thenext model parameter k. In decision block 2607, if all the modelparameters have already been selected for the selected vertex, then thecomponent loops to block 2604 to select the next vertex, else thecomponent continues to block 2608. In block 2608, the component sets theselected model parameter based on interpolation of the values of theselected model parameter of neighboring vertices in the hexahedralmodel. The component then loops to block 2606 to select the next modelparameter.

Patient Matching System

Methods and systems for identifying attributes or classification of anEM source within a body based on patient matching that is matching apatient source configuration to model source configurations of the EMsource are provided. In some embodiments, a patient matching (“PM”)system uses the matching model source configurations to speed up theprocess of identifying the attributes for the patient or to provide amore accurate classification for the patient using a classifier. Toidentify an attribute (e.g., arrhythmia source location) for a patient,the PM system generates a mapping of each model source configurationused to generate simulated (or modeled) EM output to the derived EM datathat is derived from the simulated EM output generated based on thatmodel source configuration. Each derived (or modeled) EM data is alsomapped to an attribute associated with the EM source having the modelsource configuration. For example, when the EM source is a heart, themodel source configurations include configuration parameters such asanatomical parameters and electrophysiology parameters. Theconfiguration parameters may include the source location of anarrhythmia, a rotor type, type of disorder or condition, and so on. Oneof the configuration parameters, such as arrhythmia source location, maybe designated as an attribute parameter, which represents the attributeto be identified for a patient. The PM system generates the mappings ofmodel source configurations to modeled VCGs and generates the mappingsof modeled VCGs to their corresponding source location of thearrhythmia. The mappings of modeled VCGs to source locations may begenerated in a manner similar to how the training data is generated bythe MLMO system with the attribute corresponding to the label. In someembodiments, the mappings of derived electromagnetic data to sourceconfigurations and attributes may be based on data collected from actualpatients rather than data input to and generate by a simulation.

In some embodiments, the PM system uses the mappings to identify theattribute for a patient based on a combination of the patient sourceconfiguration of the patient and a patient VCG of the patient. Theattribute can be identified by comparing the patient VCG to each modeledVCG to identify the most similar modeled VCG and by identifying theattribute of that most similar modeled VCG as the patient attribute ofthe patient. It can, however, be computationally very expensive tocompare the patient VCG to each modeled VCG because the number ofmodeled VCGs may be in the millions. The PM system may employ varioustechniques to reduce the computational expense. With one technique, thePM system uses the patient source configuration to reduce the number ofmodeled VCGs to which the patient VCG needs to be compared. The PMsystem may allow a user to provide the patient source configuration fora patient. It would be preferable if a value for each configurationparameter of the patient source configuration could be provided. Inpractice, however, it may be that the values of only certainconfiguration parameters are known for a patient. In such cases, the PMsystem performs the comparison based on the known values of theconfiguration parameters, rather than all the configuration parameters.The anatomical parameters for a patient may be calculated based onimaging scans. The action potentials may be calculated based on outputof a basket catheter inserted into the patient's heart or the patient'shistory of anti-arrhythmic drug or gene therapy, and the conductivitymay be calculated based on analysis of the patient's ECG. Theconfiguration parameters may also include electrophysiology parametersto indicate whether the action potential and/or conductivity representsa diseased state. In such a case, if the action potential orconductivity of a patient is not available, the configuration parametersindicate whether the action potential or conductivity represent adisease state. The PM system may use various techniques to assess thesimilarity between a patient source configuration and a model sourceconfiguration such as one based on least squares, cosine similarity, andso on. The PM system may generate a similarity score for each modelsource configuration and identify as matching model sourceconfigurations those with a similar score that is above a matchingthreshold.

In some embodiments, after the matching model source configurations areidentified, the PM system compares the patient VCG to the modeled VCGsto which the matching model source configurations are mapped. The PMsystem may generate a similarity score for each modeled VCG (e.g., usinga Pearson correlation technique) and identify as matching modeled VCGsthose with a similarity score above a threshold similarity. The PMsystem then identifies the attribute(s) for the patient based on theattributes of the matching modeled VCGs. For example, if the attributeis source location of an arrhythmia, the PM system may generate anaverage of the source locations weighted based on the similarity scoresof the matching model VCGs. In this way, the PM system avoids thecomputational expense of comparing a patient VCG to every modeled VCG.

In some embodiments, the PM system may employ other techniques forreducing the computational expense of comparing the patient VCG to everymodeled VCG. For example, the PM system may identify features of VCGssuch as area, maximum dimensions, and so on. The PM system then maygenerate an index that maps values of the features to the modeled VCGshaving those values. To identify modeled VCGs that match a patient VCG,the PM system identifies the features of the patient VCG and uses theindex to identify matching modeled VCGs. For example, the PM system mayidentify for, each feature, a set of the modeled VCGs that match thatfeature of the patient VCG. The PM system can then identify the modeledVCGs that are common to each set (e.g., intersection of the sets) ormost common to the sets as the matching modeled VCGs. The PM system canthen compare those matching modeled VCGs to the patient VCG as describedabove to identify the attribute.

In some embodiments, the PM system may employ patient matching toimprove the classification of VCGs based on a trained classifier. The PMsystem may generate clusters of similar model source configurationsusing various clustering techniques. The clustering techniques mayinclude a centroid-based clustering technique (e.g., k-meansclustering), a supervised or unsupervised learning clustering technique(e.g., using a neural network), and so on. With a centroid-basedclustering technique, the PM system generates clusters by successivelyadding each model source configuration to the current cluster of modelsource configurations to which it is most similar. The PM system maycombine and split clusters dynamically, for example, based on the numberof model source configuration in each cluster, the similarity of themodel source configurations of one cluster to another, and so on. Afterthe clusters are identified, the PM system may employ components of theMLMO system to generate a classifier for each cluster. The PM systemtrains the classifier for a cluster based on the modeled VCGs for themodel source configurations of that cluster as the training data for theclassifier.

In some embodiments, to generate a classification for a patient, the PMsystem identifies the cluster with model source configurations that bestmatches the patient source configuration. For example, the PM system maygenerate a similarity score for each cluster based on similarity betweena representative model source configuration (e.g., with average valuesof a cluster) of that cluster and the patient source configuration. ThePM system then selects the classifier for the cluster with the highestsimilarity score and applies that classifier to the patient VCG togenerate the classification for the patient. Because each classifier istrained based on a cluster of similar model source configurations, eachclassifier is adapted to generate classifications based only on thedifferences, which may be subtle, in those similar model sourceconfigurations. In contrast, a classifier trained based on all modelsource configurations may not be able to factor in subtle differencesbetween similar model source configurations. As such, a classifiertrained based on a cluster of similar model source configurations mayprovide a more accurate classification than a classifier trained basedon all model source configurations.

In some embodiments, the PM system may generate the modeled EM outputfor the model source configurations assuming a standard orientation of aheart. If a patient, however, has a heart with a somewhat differentorientation, then the matching modeled VCGs may not have attributes orclassifications that would apply to the patient because of thedifferences in the orientations. In such a case, the PM system mayperform a VCG rotation prior to comparing the patient VCG to the modeledVCGs. The PM system may rotate either each modeled VCG or the patientVCG. The PM system may generate a rotation matrix based on thedifference in orientations. The PM system then performs a matrixmultiplication between each point (e.g., x, y, and z values) of a VCGand the rotation matrix (e.g., a 3-by-3 matrix) to generate a rotatedpoint for the rotated VCG. The MLMO system may also rotate VCGs based ondifference in orientations.

FIGS. 27-30 are flow diagrams that illustrates the processing ofcomponents of the PM system in some embodiments. FIG. 27 is a flowdiagram that illustrates the processing of an identify attributescomponent of the PM system in some embodiments. The identify attributescomponent 2700 identifies patient attributes of a patient based on apatient source configuration and a patient cardiogram (e.g., the VCG).In block 2701, the component invokes the generate simulated VCGscomponent of the MLMO system to generate the modeled VCGs and then mapsthem to the model source configurations from which they were generated.In block 2702, the component retrieves the patient source configurationand the patient VCG. In block 2703, the component invokes the identifymatching VCGs component passing an indication of the patient sourceconfiguration and the patient VCG to identify patient attributes basedon the matching VCGs. In block 2704, the component presents the patientattributes to inform treatment on the patient and then completes.

FIG. 28 is a flow diagram that illustrates the processing of an identifymatching VCGs component of the PM system in some embodiments. Theidentify matching VCGs component 2700 is passed a patient sourceconfiguration and a patient VCG and identifies the patient attributes.In block 2801, the component selects the next mapping of a model sourceconfiguration to a modeled VCG. In decision block 2802, if all themappings have already been selected, then the component completesindicating the patient attributes, else the component continues at block2803. In decision block 2003, if the selected model source configurationmatches the patient source configuration, then the component continuesat block 2804, else the component loops to block 2801 to select the nextmapping. In decision block 2804, if the modeled VCG for the selectedmapping matches the patient VCG, then the component continues at block2805, else the component loops to block 2801 to select the next mapping.In block 2805, the component adds the attribute for the selected modeledVCG to the patient attributes and then loops to block 2801 to select thenext mapping. In some embodiments, the PM system may include componentsto identify other types of matching measurements such as an EEG andmeasurements corresponding to those collected by a body surface vest, abasket catheter, a cap worn by a patient, and so on.

FIG. 29 is a flow diagram that illustrates the processing of an identifyclasses based on clustering component of the PM system in someembodiments. The identify classes based on clustering component 2900identifies the classes for a patient based on classifiers trained usingclusters of similar model source configurations. In block 2901, thecomponent invokes a generate cluster classifiers component to generateclassifiers for clusters of similar model source configurations. Inblock 2902, the component receives a patient source configuration and apatient VCG. In blocks 2903-2908, the component loops selecting clustersto identify the cluster with model source configurations that are mostsimilar to the patient source configuration. In block 2903, thecomponent initializes the variable to track the maximum similaritycalculated so far. In block 2904, the component selects the nextcluster. In decision block 2905, if all the clusters have already beenselected, then the component continues at block 2909, else the componentcontinues at block 2906. In block 2906, the component invokes acalculate similarity component to calculate the similarity between themodel source configurations of the selected cluster and the patientsource configuration. In decision block 2907, if the similarity isgreater than the maximum similarity calculated so far, then thecomponent continues at block 2908, else the component loops to block2904 to select the next cluster. In block 2908, the component sets themaximum similarity to the similarity calculated for the selected clusterand sets a variable to indicate the index of the cluster with themaximum similarity calculated so far. The component then loops to block2904 to select the next cluster. In block 2909, the component invokes aclassify based on cluster component to identify the classes for thepatient VCG based on the cluster with the maximum similarity. Theclassify based on cluster component may correspond to the classifycomponent of the MLMO system that has been adapted to input theclassifier to use. The component then completes indicating the classes.

FIG. 30 is a flow diagram that illustrates the processing of a generatecluster classifiers component of the PM system in some embodiments. Thegenerate cluster classifiers component 3000 is invoked to cluster themodel source configurations and generate a classifier based on eachcluster. In block 2001, the component generates the clusters of themodel source configurations. In block 3002, the component selects thenext cluster. In decision block 3003, if all the clusters have alreadybeen selected, then the component completes indicating the classifiers,else the component continues at block 3004. In block 3004, the componentinvokes a generate classifier component of the MLMO system passing anindication of the model source configurations of the selected cluster togenerate a classifier for that cluster. The component then loops toblock 3002 to select the next cluster.

Machine Learning Based on Clinical Data

Methods and systems are provided to adapt the MLMO system to generateclassifiers based on actual patient data. In some embodiments, a machinelearning based on clinical data (“MLCD”) system is provided thatgenerates (1) a patient classifier based on patient training dataassociated with actual patients using transference of model classifierweights and (2) generates a patient-specific model classifier based onmodel training data that is selected based on similarity to a patient.The patient classifier is generated by a patient classifier system ofthe MLCD system, and patient-specific model classifier is generated by apatient-specific model classifier system. The term “patient classifier”refers to a classifier that is generated based on patient training datagenerated based on data of patients, and the term “model classifier”refers to a classifier that is generated based on model training datagenerated based on a computational model of an EM source.

Patient Classifier System

In some embodiments, the patient classifier (“PC”) system generates apatient classifier for classifying derived EM data derived from EMoutput of an EM source within a body. For example, the patientclassifier classifies VCGs derived from ECGs. The PC system accesses amodel classifier such as one generated using the MLMO system. The modelclassifier is generated using model training data generated using acomputational model of an EM source. The model classifier includes modelclassifier weights that are learned when the model classifier is trainedsuch as the weights of the activation functions of a CNN. The PC systemalso accesses patient training data that includes, for each of apatient, patient derived EM data (e.g., VCGs) and a patientclassification for that patient such as rotor location and priorablation procedure outcome. An example prior ablation procedure outcomemay be that a patient was arrhythmia free for a certain time periodafter being ablated at a certain location with a certain burn pattern.To train the patient classifier, the PC system initializes patientclassifier weights of the patient classifier based on the modelclassifier weights of the model classifier and then trains the patientclassifier with the patient training data and with the initializedpatient classifier weights. Normally, the weights of a classifier areinitialized to default values such as all to a certain value (e.g., 0.0,0.5, or 1.0) or to random values. The learning of the weights for theclassifier is thus considered to be from “scratch.” The process ofinitializing the values of the weights based on previously learnedweights is referred to as “transference” of knowledge. The knowledgegained by the previous training of a prior classifier is transferred tothe training of a new classifier. The goal of transference is to bothspeed up the training of and increase the accuracy of the newclassifier.

In some embodiments, the PC system uses the patient classifier toclassify patients. For example, when the EM source is a heart, the PCsystem may receive a cardiogram (e.g., ECG or VCG) of a patient andapply the patient classifier to that cardiogram. Depending on thepatients selected for training the patient classifier, the patientclassifier may be a more accurate classifier than a model classifiertrained on model training data generated using a computational model.Moreover, if the patient is similar to the patients used to train thepatient classifier, then the accuracy of the classifier may be even moreaccurate. The PC system may also identify clusters of similar patientsand train a separate patient classifier for each cluster, referred to asa cluster patient classifier. The similarity of the patients may bedetermined in various ways such as based on comparison of variouscharacteristics such one or more of derived EM data (e.g., cardiograms)collected from the patients, patient source configurations of thepatients (e.g., anatomical parameters, electrical dynamic properties),patient demographic information, and so on. The cluster patientclassifier for each cluster may be trained based on the VCGs andcorresponding labels of the patients in that cluster. When a targetpatient is to be classified, the PC system identifies the cluster ofpatients to which the target patient is most similar. The PC system thenapplies the cluster patient classifier of the identified cluster to VCGof the target patient.

Patient-Specific Model Classifier System

In some embodiments, a patient-specific model classifier (“PSMC”) systemgenerates a patient-specific model classifier for classifying derived EMdata of an EM source within a body. The PSMC system identifies modelsthat are similar to a patient. The PSMC system identifies similar modelsbased on a patient-model similarity. The patient-model similarity may bebased on similarity between model source configuration of a model andpatient source configuration of the patient and/or similarity betweenmodeled derived EM data (e.g., VCGs) of a model and correspondingpatient derived EM data of the patient. For example, the PSMC system maybase the similarity on anatomical parameters (e.g., dimensions of aright ventricle), certain electrophysiology parameters, and so on. ThePSMC system then may use the MLMO system to generate a patient-specificmodel classifier using the model source configurations of the similarmodels. The PSMC system may generate the patient-specific modelclassifier by first applying a computational model of the EM source togenerate modeled EM output of the EM source based on the model sourceconfigurations of the similar models. The PSMC system then generatesmodel training data that includes modeled derived EM data (e.g., VCGs)from the generated modeled EM output and labels for the models.Alternatively, if the model training data has already been generated forthe similar models, then the PSMC system need not regenerate the modeltraining data. The PSMC system then trains the patient-specific modelclassifier based on the model training data.

In some embodiments, after a patient-specific model classifier isgenerated, the PSMC system applies the patient-specific model classifierto derived EM data (e.g., VCG) of the patient to generate aclassification for the patient. Because the patient-specific modelclassifier is trained using model training data that is selected basedon the patient, the patient-specific model classifier providesclassification that is more accurate than a classification that would beprovided by a model classifier trained based on a collection of modeltraining data that is not specific to the patient.

In some embodiments, the PSMC system may generate a cluster-specificmodel classifier for a cluster of target patients. To generate acluster-specific model classifier, the PSMC system identifies modelsthat are overall similar to the target patients of the cluster and thentrains a cluster-specific model classifier based on the similar models.The PSMC system can then apply the cluster-specific model classifier togenerate a classification for the target patients of the cluster. ThePSMC system may also generate clusters of target patients and generate acluster-specific model classifier for each cluster. The PSMC system canthen generate a classification for each target patient using thecluster-specific model classifier for the cluster to which that targetpatient is a member. The PSMC system may even use a cluster-specificmodel classifier to generate a classification for a new target patient.The PSMC system identifies the cluster to which a new target patient ismost similar and applies the cluster-specific model classifier for thatidentified cluster to the patient derived EM data for the new targetpatient to generate the classification for the new target patient.

FIG. 31 is a block diagram that illustrates the overall processing of apatient classifier system of a MLCD system in some embodiments.Classifier components 3110 (i.e., components 3111-19) are similar toclassifier components 110 of FIG. 1 . The term “model” has been insertedin various components to emphasize that the components are used togenerate a classifier based on models represented by simulated sourceconfigurations or parameter sets. Components 3120 include a patient datastore 3121, a generate patient training data component 3122, a patienttraining data store 3123, a train patient classifier component 3124, anda patient classifier weights store 3125. The patient data store mayinclude ECGs collected from patients and corresponding labels such aslocations of a heart disorder. The generate patient training datacomponent generates patient training data from the patient data, forexample, by generating VCGs from the ECGs and labeling the VCGs andstoring the training data in the patient training data store. The trainpatient classifier component inputs the model classifier weights from amodel classifier weights store 3119 as transference of knowledge fromthe model classifier and trains the patient classifier based on thepatient training data. The train patient classifier then stores thepatient classifier weights in the patient classifier weights store.

FIG. 32 is a flow diagram that illustrates the processing of a generatepatient classifier component of the patient classifier system in someembodiments. The generate patient classifier component 3200 generates apatient classifier for a collection of patients using transference ofknowledge from a model classifier. In block 3201, the component invokesa generate classifier component to generate a model classifier based onmodel training data if the model classifier has not already beengenerated. The generate classifier component generates model classifierweights for the model classifier. In block 3202, the component extractsthe model classifier weights of the model classifier. In block 3203, thecomponent generates the patient training data, for example, bygenerating VCGs and labeling the VCGs. In block 3204, the componentinitializes the patient classifier weights of the patient classifier tothe model classifier weights. In block 3205, the component invokes atrain classifier component to train a patient classifier based on thepatient training data and the initialized patient classifier weights.The component then completes.

FIG. 33 is a flow diagram that illustrates the processing of a generatecluster patient classifier of the patient classifier system in someembodiments. The generate cluster patient classifier 3300 generates acluster patient classifier for clusters of patients. In block 3301, thecomponent generates clusters of patients, for example, based onsimilarity of their clinical features, source configurations, or VCGs.In block 3302, the component selects the next cluster. In decision block3303, if all the clusters have already been selected, then the componentcompletes, else the component continues at block 3304. In block 3304,the component invokes a generate patient classifier component passing anindication of the selected cluster to generate a cluster patientclassifier for the patients in the selected cluster and then loops toblock 3302 to select the next cluster. When the generate patientclassifier component is invoked, it does not need to generate a modelclassifier for each invocation because it can reuse the same modelclassifier weights for each invocation.

FIG. 34 is a block diagram that illustrates components of apatient-specific model classifier system of a MLCD system in someembodiments. The PSMC system includes components 3410 (components3411-19) are similar to components 110 of FIG. 1 . The PSMC system alsoincludes an identify similar heart configurations component 3430 and anidentify similar VCGs component 3440, which represent two differentembodiments of the PSMC system. In a first embodiment, the identifysimilar hearts configuration component inputs a patient heartconfiguration and model heart configurations and identifies the modelheart configurations that are similar to the patient heartconfiguration. The similar model heart configurations are then input tothe generate simulations component to generate the voltage solutions andultimately train the patient-specific model classifier. In a secondembodiment, the identify similar VCGs component inputs a patient VCG andthe training data and identifies VCGs of the training data that aresimilar to the patient VCG. The training data for the similar VCGs is aninput to the train PSMC classifier component 3418 to train thepatient-specific model classifier. Although not illustrated, the trainPSMC classifier may use transference to initialize the PSMC classifierweights. Also, the first and second embodiments may be both used togenerate training data based on similar heart configurations and thenselect similar VCGs for training.

FIG. 35 is a flow diagram that illustrates processing of a generatepatient-specific model classifier component of the PSMC system in someembodiments. The generate patient-specific model component 3500generates a patient-specific model classifier for a target patient. Inblock 3501, the component invokes an identify similar models componentpassing an indication of the target patient to identify similar models.In block 3502, the component generates model training data based on theidentified similar models. The component may employ the MLMO system togenerate the training data based on the model heart configurations ofthe identified similar models or, if already generated, retrieve thetraining data based on similar VCGs. In block 3503, the componentinvokes the train classifier component to train the patient-specificmodel classifier based on the model training data for the similar modelsand then completes.

FIG. 36 is a flow diagram that illustrates the processing of an identifysimilar models component of the PSMC system in some embodiments. Theidentify similar models component 3600 identifies models that aresimilar to a patient. In block 3601, the component selects the nextmodel. In decision block 3602, if all the models have already beenselected, then the component completes indicating the similar models,else the component continues at block 3603. In block 3603, the componentgenerates a similarity score between the selected model and the patient.The patient-model similarity score may be based on heart configurations,cardiograms, or both. In decision block 3604, if the similarity score isabove a similarity threshold, then the component continues at block3605, else the component loops to block 3601 to select the next model.In block 3605, the component designates the model as similar to thepatient and loops to block 3601 to select the next model.

Patient-Specific Model Display

Methods and systems are provided to adapt the MLMO system to supportgenerating and displaying a representation of an EM source of a patientthat is based on modeled EM output for a model that is similar to thepatient. In some embodiments, a patient-specific model display (“PSMD”)system identifies a model for the EM source that is deemed similar tothe EM source of a patient. The PSMD system then generates a graphicalrepresentation of patient's EM source based on clinical parameters forthe patient such as infarction and drug history. For example, if the EMsource is a heart, the PSMD system may generate a map representing ananatomical model of the patient's heart. The PSMD system then populatesthe map with display values that are derived from the modeled EM outputfor the similar model. For example, the PSMD system may select an EMmesh of that modeled EM output and set each the value of each vertex ofthe map based on the corresponding voltage of that EM mesh. The PSMDsystem may also map the modeled EM output from the polyhedral mesh usedin the simulation to another polyhedral mesh to produce a more realisticlooking display such as a hexahedral mesh to a surface-triangle mesh.The PSMD system may set the values corresponding to high voltages tovarying intensities of the color red (or grey scale shading) and thevalues corresponding to low voltages to varying intensities of the colorgreen. As another example, the PSMD system may select a cycle of themodel EM output and set the values based on the differences or deltabetween voltages of the first EM mesh in the cycle and the last EM meshin the cycle. The PSMD system may also set the values based on anaccumulation, which may be weighted, of the deltas over successive EMmeshes in a cycle. The PSMD system then displays (e.g., using arasterization technique) the map as the representation of activity ofthe patient's EM source. The PSMD system may also display an outlinedimage of a heart based on the anatomical parameters of the patient. Theoutlined image may illustrate boundaries of the chambers of the heart.

In some embodiments, the PSMD system may identify a model that issimilar to a patient by comparing model source configurations andmodeled derived EM data to the patient source configuration and thepatient derived EM data. The comparison may be based on the processingrepresented by the processing of the identify matching VCGs componentillustrated in FIG. 28 . That component, however, may be adapted togenerate a similarity score for each matching VCG so that the PSMDsystem may select the VCG, and thus the model, that is most similar tothe patient. Alternatively, the PSMD system may generate values for thepixels of the map based on a weighted combination (e.g., an average) ofthe values of the EM mesh for all the matching models. The PSMD systemmay also weight the values based on the similarity scores of thematching models.

In some embodiments, the PSMD system may generate a sequence of maps fordisplay as a video representation of activation of patient's EM sourceover time. For example, the PSMD may divide the cycle into 30 displayintervals and generate a map for each display interval based on valuesof an EM mesh corresponding to that display interval. The PSMD systemmay then display the 30 maps in sequence over the time of the cycle toprovide a video based on the actual cycle time or in sequence over atime longer than the cycle to provide a slow-motion effect. The PSMDsystem may also achieve a slow-motion effect by generating more maps persecond of simulation time than the maximum frame rate for the display.For example, if the maximum frame rate is 60 frames-per-second, thengenerating 120 maps per second of simulation will result in one secondof simulation time being displayed over two seconds. The slowest andsmoothest slow-motion effect may be achieved by generating a map fromthe voltage solution for each simulation time.

FIG. 37 is a block diagram that illustrates the overall processing of apatient-specific model display system in some embodiments. Components3710 (i.e., components 3711-15) are similar to components 111-115 ofFIG. 1 . Components 3720 include a collect ECG component 3721, agenerate VCG component 3722, an identify similar VCG component 3723, agenerate display representation component 3724, and a display device3725. The collect ECG component receives an ECG for the patient whoseheart is to be represented by the output of the PSMD system. Thegenerate VCG component receives the patient's ECG and generates a VCGfor the patient. The identify similar VCG component compares the patientVCG to the modeled VCGs of the VCG store to identify a modeled VCG thatis similar to the patient VCG. Similar VCGs may be identified based oncomparison of cycles of the VCGs. Thus, the identify similar VCGcomponent may invoke an identify cycles component to identify the cyclesof each VCG. The generate display representation component inputs thesimilar modeled VCG and generates a display representation of thepatient's heart based on the voltage solutions from which the similarmodeled VCG was derived. The generate display representation componentthen outputs the display representation to the display device.

FIG. 38 is a flow diagram that illustrates the processing of a generatepatient heart display component of the PSMD system in some embodiments.The generate patient heart display component 3800 is provided a patientVCG and a patient heart configuration and generates an outputrepresentation of the patient's heart. In block 3801, the componentinvokes an identify matching VCGs component of the patient matchingsystem passing an indication of the patient VCG and the patient heartconfiguration to identify one or more matching VCGs. In block 3802, thecomponent identifies the closest matching of the VCGs. In block 3803,the component identifies a cycle within the closest matching VCG. Inblock 3804, the component invokes the calculate display values componentpassing an indication of the identified cycle to generate display valuesfor map. In block 3805, the component generates the displayrepresentation by storing the display values in the map. In block 3805,the component display values in the map to represent an outline of thepatient's heart based on anatomical parameters of that patient. In block3807, the component outputs the map and completes.

FIG. 39 is a flow diagram that illustrates the processing of a calculatedisplay values component of the PSMD system in some embodiments. Thecalculate display values component 3900 is passed an indication of acycle and generates display values based on EM meshes of that cycle. Inblock 3901, the component selects the first voltage solution of thecycle. In block 3902, the component selects another voltage solution ofthe cycle such as the last voltage solution. In block 3903, thecomponent selects the next value of a voltage solution. In decisionblock 3904, if all the values of already been selected, then thecomponent continues at block 3906, else the component continues at block3905. In block 3905, the component sets a delta value for the selectedvalue to the difference between the value for the first voltage solutionand the last voltage solution of the cycle. The delta value mayalternatively be weight accumulation of the differences over a cycle.The component then loops to block 3903 to select the next value of thevoltage solution. In block 3906, the component selects the next displayvalue of the map. In decision block 3907, if all the display values havealready been selected, then the component completes indicating thedisplay values, else the component continues at block 3908. In block3908, the component identifies neighboring delta values that are nearthe display value. In block 3910, the component sets the display valueto a function of the neighboring delta values and then loops to block3906 to select the next display value. The function may take the averageof the neighboring delta values, a weighted average based on distancebetween the location of the voltage solution and the location and thepatient heart that the display value represents, and so on.

Display of an Electromagnetic Force

Methods and systems for generating a visual representation of anelectromagnetic force generated by an electromagnetic source within abody is provided. In some embodiments, an electromagnetic force display(“EFD”) system generates a “surface representation” of theelectromagnetic force from a sequence of vectors representing magnitudeand direction of the electromagnetic force over time. For example, whenthe electromagnetic source is a heart, the sequence of vectors may be avectorcardiogram. The vectors are relative to an origin, which may belocated within the electromagnetic source. To generate the surfacerepresentation, the EFD system, for pairs of vectors adjacent in time,identifies a region based on the origin and the pair of vectors. Forexample, if a vector has the values (1.0, 2.0, 2.0) for its x, y, and zcoordinates and the adjacent vector has values (1.1, 2.0, and 2.0), thenthe region is the area bounded by the triangle with the vertices at(0.0, 0.0, 0.0), (1.0, 2.0, 2.0), and (1.1, 2.0, and 2.0). The EFDsystem then displays a representation of each region to form the surfacerepresentation of the electromagnetic force. Since the regions willunlikely lie in one plane, the EFD system may provide shading orcoloring to help illustrate that the regions lie in different planes.The EFD system may also display a representation of the electromagneticsource so that the surface representation visually emanates from theelectromagnetic source. For example, the EFD system may display a heartthat is based on the anatomical parameters of a patient from whom theVCG was collected. When the electromagnetic force has cycles, theregions for a cycle form a surface representation for that cycle. TheEFD system may simultaneously display surface representations formultiple cycles. For example, when the electromagnetic source is aheart, the cycle may be based on an arrhythmia. The EFD system may alsodisplay the surface representation of each cycle in sequence (e.g.,centered at the same location on the display) illustrate changes in theelectromagnetic force over time. The EFD system may display each regionof a surface representation in sequence to illustrate the timesassociated with the vectors. The EFD system may be used display eithersimulated VCGs or VCGs collected from patients.

FIG. 40 illustrates various surface representations ofvectorcardiograms. Image 4010 illustrates a display of a surfacerepresentation of a vectorcardiogram based on a perspective view. Image4020 illustrates a display of a surface representation ofvectorcardiogram shown as emanating from a heart. Images 4031-34illustrate display of the surface representation over time to illustratechanges in the electromagnetic force.

In some embodiments, the EFD system may employ a variety of animationtechniques to assist a user in analyzing a VCG. For example, the EFDsystem may animate the display of the surface representation bydisplaying each region in sequence with a timing that is the same as theactual timing of the VCG. If a cycle is 1000 ms, then EFD system woulddisplay the regions in sequence over 1000 ms. When displaying thesurface representations for multiple cycles in sequence and the nextregion to display would overlap a region previously displayed, then theEFD system may first remove the region that would be overlapped and thendisplay the next region. The EFD system may also allow the user tospecify that only a portion of the surface representation for a cycle bedisplayed. For example, the user may specify to display a portioncorresponding to 250 ms of the surface representation. In such a case,the EFD system may animate the display of the portion by removing thetail region when adding a head region. The EFD system may also allow theuser to speed up or slow down the display of the surfacerepresentations.

FIG. 41 is a flow diagram that illustrates the processing of a visualizeVCG component of the EFD system in some embodiments. The visualize VCGcomponent 4100 is passed a VCG and generates a surface representationfor each portion (e.g., cycle) of the VCG. In block 4101, the componentdisplays a representation of a heart. In block 4102, the componentselects the next cycle of the VCG. In decision block 4103, if all thecycles have already been selected, then the component completes, elsethe component continues at block 4104. In block 4104, the componentinvokes a display VCG surface representation component to display asurface representation for the selected cycle and then loops to block4102 to select the next cycle.

FIG. 42 is a flow diagram that illustrates the processing of a displayVCG surface representation component of the EFD system in someembodiments. The display VCG surface representation component 4200 ispassed a vectorcardiogram and generates a surface display representationof the VCG. In block 4201, the component sets an index t to 2 forindexing through the time intervals of the VCG. In decision block 4002,if the index t is greater than the number of time intervals, then thecomponent completes, else the component continues at block 4203. Inblock 4203, the component generates a VCG triangle based on the origin,the indexed interval t, and the prior interval t-1. In block 4204, thecomponent fills the VCG triangle with a shading that may vary based onthe plane of the triangle. In block 4205, the component displays thefilled VCG triangle. In block 4206, the component increments the indext. In decision block 4207, if the index t is greater than the displayspan t_(span)+1, then the component continues at block 4208, else thecomponent loops to block 4202. In block 4208, the component removes fromthe display the VCG triangle at the beginning of the currently displayedspan and loops to block 4202.

Calibration of Simulations

Methods and system performed by a computing system for generating acalibrated collection of simulated cardiograms, also referred to asmodel cardiograms, based on morphological similarity such as orientationsimilarity and/or electrophysiological similarity to patient cardiogramsare provided. Morphological similarity may be determined based onanalysis of “raw trace” data (e.g., voltage vs. time) that represents aECG and/or VCG data of a patient. The calibrated collection may befurther generated based on similarity of additional configurationparameters used to generate the simulated cardiograms to configurationparameters of the patient. In some embodiments, a calibrate simulatedcardiograms (“CSC”) system generates the calibrated collection. Becausethe CSC system generates the calibrated collection based on similarityto patient cardiograms, the calibrated collection represents apatient-specific collection of simulated cardiograms. The simulatedcardiograms of the calibrated collection can be used to train apatient-specific model classifier with each simulated cardiogram labeledwith a configuration parameter used to generate that simulatedcardiogram. The simulated cardiograms may be labeled with aconfiguration parameter that is not collected from the patient, such asa source location of a rotor. The patient-specific model classifier canthen be used to determine that configuration parameter for the patient.The CSC system, like the PSMC system, generates a patient-specific modelclassifier, but uses various similarity measurements such asmorphological similarity.

In some embodiments, the CSC system inputs simulated cardiograms and thesimulated configuration parameters used in generating each simulatedcardiogram. The simulated cardiograms may be generated by the MLMOsystem as illustrated by the generate simulation component 112 and thegenerated VCGs component of FIG. 1 . The CSC system also inputs thepatient cardiograms and patient configuration parameters. The CSC systemidentifies pacing-similar simulated cardiograms whose simulated pacingsare similar to the patient pacing(s) used when collecting the patientcardiograms. To collect the patient cardiograms, an electrophysiologist(or other care provider) may place a catheter in the patient's heart atdifferent locations, such as near the coronary sinus. For each location,the patient's heart is paced, for example, at 1 Hz for 10 beats followedby an extra-stimulus beat after a certain delay. The same process ofpacing at 1 Hz is then repeated multiple times with different delays ofthe extra-stimulus beat. The same pacing process is then repeated butwith different pacing rates (e.g., 2 Hz and 4 Hz). The result is acollection of patient electrocardiograms collected based on differentlocations, pacing rates, and extra-stimulus delays. Theelectrocardiogram for normal sinus rhythm beats may also be collected.

In some embodiments, the pacing locations include at least two sites,which may be distant sites, in the target chamber that is a target ofthe pacings or a clinical procedure. For example, if the target chambersare the ventricles, the pacing locations may include one location in theposterior right ventricle and one pacing location in the lateral leftventricle. Such, pacing locations are commonly accessed and easilyaccessible with a catheter. However, other pacing locations may be used.For example, if the only target chamber is the left ventricle, thepacing locations may include one pacing location in the lateral leftventricle wall near the base (at the level of the heart valves) and onepacing location in the left ventricle septal wall near the apex. Asanother example, if target chambers are the atria, then only one pacinglocation may be used such as a pacing location in the coronary sinus inthe left atrium. This pacing location can be paired with a normal P-wavelocated at the sinoatrial node in the right atrium. Generally, theeffectiveness of the calibration increases with more pacing locationsand with pacing locations that are distant.

The CSC system identifies simulated cardiograms that aremorphologically-similar to patient cardiograms. Morphological similarityincludes both orientation similarity and electrophysiologicalsimilarity, and electrophysiological similarity includes both actionpotential and conduction velocity similarity. The CSC system identifies,from the pacing-similar cardiograms, orientation-similar simulatedcardiograms of a simulated heart with a simulation orientation that issimilar to a patient orientation of the patient's heart. To determineorientation similarity, the CSC system generates QRS complex and T-wavevectors for ventricular beats and P-wave vectors for atrial beats of thepatient. The vectors may represent the mean spatial orientation of thetotal electrical dipole at that cycle phase (e.g., QRS complex) of thecardiac cycle. Alternatively, rather than the mean vectors, the CSCsystem may use a time series of vectors, that is the raw VCG signals.The CSC system labels each vector with its pacing (e.g., pacing locationand pacing rate) and cycle phase. The CSC system generates correspondingsimulated vectors from the simulated cardiograms of the pacing-similarsimulated collection. The CSC system then calculates the orientationdifference between the patient vectors and each simulated vector for thesame pacing and cycle phase. For example, the CSC system may calculatethe dot products between vectors at the left ventricle (“LV”) apex, LVlateral wall, LV posterior wall, and LV anterior wall during the QRScomplex and the T-wave. The CSC system then identifies the set ofsimulated cardiograms whose total orientation difference (e.g., weightedaverage of the dot products) is minimal. To calculate the orientationdifference, the CSC system generates a rotation matrix representing thedifference in orientation between the patient orientation and each ofthe simulated orientations of the identified set. To generate therotation matrix, the CSC system may apply a least-squares fit of thepatient vectors to simulated vectors of the set. The CSC system selects,as the orientation-similar simulated cardiograms, the simulatedcardiograms with the smallest simulated orientation difference asindicated by the rotation matrix. In some embodiments, the CSC systemmay determine orientation similarity based on features of the raw tracedata (e.g., voltage vs. time) other than vectors derived from the QRScomplex, T-wave, and P-wave of the ECGs or VCGs.

The CSC system identifies, from the morphologically-similar simulatedcardiograms, action-potential-similar simulated cardiograms thatrepresent action potentials that are similar to the action potentialrepresented by the patient cardiograms. To determine action potentialsimilarity, the CSC system normalizes the ECGs of the simulatedcardiograms and the patient cardiograms both in time and magnitude. Forexample, each ECG may be normalized to one second and to a certain peakQRS complex or P-wave signal. The CSC system estimates action potentialparameters that control the time duration of activated myocardial tissue(action potential duration), which change the relative durations of theECG and/or VCG cycle phases. The action potential characteristics areheterogenous throughout the anatomy and may depend on various attributesof the cardiac tissue (e.g., location in the anatomy, type of cardiaccell, and healthy/disease classification). The time durations of thecardiac cycled in the ECG and/or VCG represent the global effect of thelocal distribution of action potential parameters on the overall cardiacdipole. The CSC system may compare a patient VCG to a simulated VCG atthe same pacing rate and pacing location. The action potentials areconsidered similar based on similarity between the relative magnitudesand deflections between the X, Y, and Z values of the QRS complex,T-wave, and P-wave even if the absolute timing of the cycles differ. Therelative timings indicate the shape and duration of the electrical wavesin the myocardium (wavefront, waveback, and wavelength). The CSC systemmay adjust the time of the simulated VCGs based on one or more of 1)selecting a better matching geometry to the patient, 2) adjusting a bulkmyocardial conductivity parameter, and 3) adjusting parameters (i.e.,time constants) in the ionic model that govern the duration of theaction potential. The latter two parameters may be varied such that theerrors between absolute and relative timings are below some threshold(e.g. 10 ms, or 5%). The CSC system then calculates the action potentialsimilarity between each simulated cardiogram and each patient cardiogram(e.g., using a Pearson correlation). The CSC system then selects themost similar simulated cardiograms (e.g., action potential similarityabove a threshold) as the action-potential-similar simulatedcardiograms.

The CSC system identifies, from the action-potential-similar simulatedcardiograms, conduction-velocity-similar simulated cardiograms thatrepresent conduction velocities that are similar to the conductionvelocities represented by the patient cardiogram. The CSC systemidentifies the conduction-velocity-similar simulated cardiograms in amanner similar to that of identifying action-potential-similar simulatedcardiograms except that the cardiograms are normalized in magnitude butnot in time.

The CSC system may also identify simulated cardiograms based on cardiacgeometry similarity and disease substrate similarity. The cardiacgeometry similarity may be based on structural disease similarity thatis based on the extent of structural disease in a certain chamber (e.g.,severe cardiomyopathy in the ventricles) and measurement similaritybased on comparison of measurements of the patient's heart (e.g.,collected via CT or ultrasound) to configuration parameters of thesimulated cardiograms. The disease substrate may be based on locationand size of the patient's myocardial scars. The size and location of thepatient's scars may be identified by a person designating the scarredportions of the patient's heart (based on a voltage map) on a geometricrepresentation of the patient's heart. Disease substrate similarity isbased on the extent of overlap of the patient's scars and the scars ofthe simulated cardiogram.

The CSC system may determine cardiac geometry similarity (e.g.,structural disease similarity and measurement similarity), orientationsimilarity, electrophysiological similarity (e.g., action potentialsimilarity and conduction velocity similarity), and disease substratesimilarity in any order. In particular, with a given order ofdetermining similarity, the CSC system may determine similarity based onthe set of simulated cardiograms that are determined to be similar basedon the prior determination of similarity—effectively successivelyfiltering the set of simulated cardiograms. The CSC system may alsoidentify from the collection of simulated cardiograms a set that is mostsimilar for each similarity metric and then identify the most similarsimulated cardiograms from those sets. For example, the CSC system maycombine the similarity scores using a weighted average into a finalsimilarity score for each simulated cardiogram.

The CSC system may also identify a calibrated collection of simulatedcardiograms using various machine learning (“ML”) techniques such aslinear regression techniques, neural networks, and so on. To generate aML calibrated collection, the CSC system identifies a training set ofsimulated cardiograms that match the patient cardiograms based on thesimilarity of configuration parameters (e.g., morphological parameters)to the corresponding parameters of the patient and based on similarityof pacing locations. For example, for each pacing location of a patientcardiogram, the CSC identifies, from those simulated cardiograms withthat pacing location, a set of simulated cardiograms with configurationparameters that are similar to the patient parameters.

The CSC system then trains a mapping function that maps the simulatedcardiograms to the patient cardiograms. For example, the mappingfunction may be a neural network whose weights are learned based on thetraining set. The weights represent a non-linear transformation of thesimulated cardiograms to the patient cardiograms that tends to minimizethe difference between the configuration parameters and the patientparameters. To train the mapping function, the CSC system may derivevarious features from the simulated cardiograms and use those featuresas training data. The features may be based on the magnitude of voltagesof cardiac segments, the timing of cardiac segments, and so on. Once themapping function is trained, the CSC system applies to the mappingfunction to a set of simulated cardiograms that match the patientcardiograms to generate ML transformed simulated cardiograms. The MLtransformed simulated cardiograms form the ML calibrated collection ofsimulated cardiograms.

The ML calibrated collection can then be used to generate apatient-specific model classifier. The mapping function can be used incombination with the various techniques described above to identifysimulated cardiograms that match the patient cardiograms. For example,the matching simulated cardiograms may be identified based onorientation similarity and electrophysiological similarity.

In some embodiments, the CSC system may also generate a calibratedcollection of simulated cardiograms based on patient-specific sourceconfiguration (e.g. geometry, disease substrate or scar, actionpotentials). To identify the calibrated collection, the CSC systemidentifies simulations based on their source configurations and/orcardiograms such as VCGs being similar that of the patient. The CSCsystem then employs a bootstrapping technique similar to one describedabove that is used to speed up generating of the model library. For eachidentified simulation, the CSC system uses the values of the EM mesh atsome point of the simulation to bootstrap a patient-specific simulation.The CSC system then continues the simulation using the patient-specificsource configuration of the patient, rather than the sourceconfiguration of the identified simulation. For example, if thesimulations are for four seconds, the CSC system may initialize thepatient-specific simulations with the values from the three second pointand run a patient-specific simulation for one second. The CSC systemthen generates patient-specific simulated VCGs from the patient-specificsimulations. The CSC system identifies as the calibrated collection thepatient-specific simulations with their corresponding sourceconfigurations and patient-specific VCGs as the calibrated collection ofsimulated cardiograms. The calibrated collection may be used as trainingdata for a patient-specific classifier or for other purposes such asusing the source configurations of the simulations in the collectiondirectly to identify a source location.

In some embodiments, the CSC system may also identify a calibratedcollection of simulated cardiograms based on patient-specific simulatedcardiograms such as VCGs. To identify the calibrated collection, the CSCsystem identifies simulations based on their source configurations beingsimilar that of the patient. For example, the similarity may be based ongeometry and scar locations. The CSC system then uses the EM data or EMoutput of each identified simulation and the geometry of the patient'sheart to generate a patient-specific VCG for that simulation. Togenerate the VCG, the CSC system effectively assumes that the EM data orEM output was generated using a geometry that matches that of thepatient when generating the patient-specific VCG. The CSC system thenidentifies the simulations with VCGs that best match thepatient-specific VCG as the calibrated collection of simulatedcardiograms. The calibrated collection may be used as training data fora patient-specific classifier or for other purposes such as using thesource configurations of the simulations in the collection directly toidentify a source location.

In some embodiments, the CSC system may perform additional calibrationbased on the identified simulated VCGs that best match thepatient-specific VCGs via linear or non-linear transformation of pairsof simulated and patient-specific VCGs. A pair of simulated andpatient-specific VCGs comprises two VCGs with similar sourceconfiguration (e.g. geometry, scar locations, electrophysiologyproperties, source location, etc.) and electromagnetic data (e.g.,cardiogram morphology). The CSC system may compute a lineartransformation from a least-squares fit of at least one pair ofsimulated and patient-specific VCG, such that the transformation appliedto the simulated VCG improves the similarity score with thepatient-specific VCG. The CSC system may also apply non-lineartransformations using a neural network trained on pairs of simulated andpatient-specific VCGs or other machine learning technologies totransform the simulated VCGs to better match the patient-specific VCGs.

FIG. 43 is a flow diagram that illustrates processing of an identifysimulated cardiograms component of the CSC system in some embodiments.The identify simulated cardiograms component 4300 is passed patientcardiograms and simulated cardiograms and identifies the simulatedcardiograms that are similar to each patient cardiogram. In block 4301,the component determines the cardiac geometry similarity (e.g.,structural disease similarity and/or measurement similarity) betweeneach patient cardiogram and each simulated cardiogram. In block 4302,the component determines pacing similarity between each patientcardiogram and each simulated cardiogram. Pacing similarity may be basedon how close a pacing location and a pacing rate of a simulatedcardiogram is to that of a patient cardiogram. In block 4303, thecomponent determines orientation similarity between each patientcardiogram and each simulated cardiogram. In block 4304, the componentdetermines electrophysiological similarity between each patientcardiogram and each simulated cardiogram. In block 4305, the componentidentifies the simulated cardiograms as the calibrated simulatedcardiograms based on the determined similarities and then completes.Although not illustrated, the component may also determine diseasesubstrate similarity for identifying similar simulated cardiograms. Theconfiguration parameters used to generate the simulated cardiograms areconsidered to be associated with those cardiograms. For example, acardiogram may be considered to have a pacing location and a diseasesubstrate used in generating a simulated cardiogram or a patientcardiogram.

FIG. 44 is a block diagram that illustrates components of the CSC systemin some embodiments. The CSC system 4400 includes a calibrate simulatedcardiograms component 4401. The CSC system includes calibrateorientation components that include a generate vectors component 4402and a determine morphological similarity component 4410 with a determineorientation similarity component 4411 and a determineelectrophysiological component 4412. The CSC system includes an identifyorientation-similar component 4403 and calibrate electrophysiologycomponents that include a calibrate action potential component 4404 anda calibrate conduction velocity component 4405. The CSC system includescardiac geometry components that include a calibrate structural diseasecomponent 4406 and a calibrate measurement component 4407. The CSCsystem includes a calibrate disease substrate component 4408 and acalibrate pacing component 4409. The CSC system accesses simulationstore 4420 and outputs calibrated simulated cardiograms. The calibratesimulated cardiograms component invokes the calibrate orientationcomponents, the calibrate electrophysiology components, the cardiacgeometry components, the calibrate disease substrate component, and thecalibrate pacing component to identify the calibrated simulatedcardiograms. The calibrate orientation components, the calibrate actionpotential component, and the calibrate cardiac geometry components aredescribed in flow diagrams.

FIG. 45 is a flow diagram that illustrates the processing performed byan electrophysiologist (“EP”) to collect patient data. In block 4501,the EP selects the next pacing location. In decision block 4502, if allthe pacing locations have already been selected, then the processingcompletes, else the processing continues at block 4503. In block 4503,the EP places the catheter at the pacing location. In block 4504, the EPselects the next pacing rate. In decision block 4505, if all the pacingrates have already been selected for the selected pacing location, thenthe processing loops to block 4501 to select the next pacing location,else the processing continues at block 4506. In block 4506, the EPselects the next extra-stimulus interval. In decision block 4507, if allthe extra-stimulus intervals have already been selected for the selectedpacing location and pacing rate, then the processing loops block 4504 toselect the next pacing rate, else the processing continues at block4508. In block 4508, the EP applies a stimulus at the selected pacingrate. In block 4509, the stimulus is applied at the extra-stimulusinterval and the processing loops to block 4506 to select the nextextra-stimulus interval.

FIG. 46 is a flow diagram that illustrates processing of a calibratesimulated cardiograms component of the CSC system in some embodiments.The calibrate simulated cardiograms component 4600 is passed anindication of the patient cardiograms and the simulated cardiograms andidentifies simulated cardiograms that are similar to the patientcardiograms. In block 4601, the component invokes the generate vectorscomponent passing an indication of the patient cardiograms to generatethe patient vectors for each patient cardiogram. In block 4602, thecomponent invokes an identify orientation-similar simulated cardiogramspassing an indication of the simulated cardiograms and the measuredvectors for each patient cardiogram and receives an indication of theorientation-similar simulated cardiograms in return. Blocks 4601 and4602 represent processing to determine the orientation-similar simulatedcardiograms. In block 4603, the component invokes a calibrate actionpotential component passing an indication of the orientation-similarsimulated cardiograms and the patient cardiograms and receives anindication of the action-potential-similar simulated cardiograms inreturn. In block 4604, the component invokes a calibrate conductionvelocity component passing an indication of the action-potential-similarsimulated cardiograms and the patient cardiograms and receives anindication of conduction-velocity-similar simulated cardiograms inreturn. Blocks 4603 and 4604 represent processing to determine theelectrophysiological similarity.

FIG. 47 is a flow diagram that illustrates the processing of a generatevectors component of the CSC system in some embodiments. The generatevectors component is invoked to generate the vectors for each cardiogramthat is passed. Although not illustrated, the processing of blocks4701-4708 are performed for each cardiogram. In block 4701, thecomponent selects the next cardiac cycle of the cardiogram. In decisionblock 4702, if all the cardiac cycles have already been selected, thenthe component completes, else the component continues at block 4703. Inblock 4703, the component selects the next cardiac cycle phase for theselected cardiac cycle. In decision block 4704, if all the cardiac cyclephases have already been selected, then the component loops to block4701 to select the next cardiac cycle, else the component continues atblock 4705. In block 4705, the component selects the next cardiaclocation. In decision block 4706, if all the cardiac locations havealready been selected, then the component continues at block 4703 toselect the next cardiac cycle phase, else the component continues atblock 4707. In block 4707, the component calculates the vector from thecardiogram for the cardiac location during the cardiac cycle phase. Inblock 4708, the component labels the vector with the cardiac cycle phaseand cardiac location and then loops to block 4705 to select the nextcardiac location.

FIG. 48 is a flow diagram that illustrates the processing of theidentify orientation-similar component of the CSC system in someembodiments. The identify orientation-similar component 4800 is invokedpassing an indication of the simulated cardiogram and the patientvectors for each patient cardiogram. Although not illustrated, blocks4801-4807 are performed for each patient cardiogram. In block 4801, thecomponent selects the next simulated cardiogram. In decision block 4802,if all the simulated cardiograms have already been selected, then thecomponent continues at block 4808, else the component continues at block4803. In block 4803, the component invokes the generate vectorscomponent passing an indication of the simulated cardiogram and receivesthe simulated vectors in return. In block 4804, the component selectsthe next simulated vector. In decision block 4805, if all the simulatedvectors have already been selected, then the component continues atblock 4807, else the component continues at block 4806. In block 4806,the component calculates the orientation difference between the selectedsimulated vector and the corresponding patient vector and loops to block4804 to select the next simulated vector. In block 4807, the componentcalculates orientation similarity for the selected simulation cardiogramand then loops to block 4801 to select the next simulated cardiogram. Inblock 4808, the component identifies and returns the simulatedcardiograms with the highest orientation similarity and then completes.

FIG. 49 is a flow diagram that illustrates the processing of a calibratecardiac geometry component of the CSC system in some embodiments. Thecalibrate cardiac geometry component 4900 is invoked to identifysimulated cardiograms that are cardiac-geometry-similar to the patientcardiograms. In block 4901, the component receives an assessment of thestructural disease of the patient. In block 4902, the componentidentifies simulated cardiograms with a similar structural disease. Inblock 4903, the component receives the geometric measurements of thepatient. In block 4904, the component selects the next identifiedsimulated cardiogram. In decision block 4905, if all the simulatedcardiograms have already been selected, then the component continues atblock 4907, else the component continues at block 4906. In block 4906,the component calculates a geometric score between the selectedsimulated cardiograms and the patient, and then loops to block 4904 toselect the next identified simulated cardiogram. In block 4907, thecomponent selects and returns the best matching simulated cardiogramsbased on geometric scores as the cardiac-geometry-similar simulatedcardiograms.

FIG. 50 is a flow diagram that illustrates the processing of a calibrateaction potential component of the CSC system in some embodiments. Thecalibrate action potential component 5000 identifies simulatedcardiograms whose action potential are similar to the patientcardiograms. Although not illustrated, the processing of blocks5001-5006 are performed for each patient cardiogram. In block 5001, thecomponent generates a normalized ECG for the patient cardiogram. Inblock 5002, the component selects the next simulated cardiogram. Indecision block 5003, if all the simulated cardiograms have already beenselected, then the component continues at block 5006, else the componentcontinues at block 5004. In block 5004, the component generates anormalized simulated ECG for the selected simulated cardiogram. In block5005, the component calculates the action potential similarity betweenthe normalized patient ECG and the simulated ECG and then loops to block5002 to select the next simulated cardiogram. In block 5006, thecomponent selects and returns the simulated cardiograms with the highestaction potential similarity.

FIG. 51 is a flow diagram that illustrates the processing of a generatemapping function component of the CSC system in some embodiments. Thegenerate mapping function component 5100 identifies a set of simulatedcardiograms that match the patient cardiograms to be used as trainingdata and then trains the mapping function. In block 5101, the componentselects the next pacing location of the patient cardiograms. In decisionblock 5102, if all the pacing locations have already been selected, thenthe component continues at block 5107, else the component continues atblock 5103. In block 5103, the component selects the next simulatedcardiogram with that pacing location. In decision block 5104, if allsuch simulated cardiograms have already been selected, then thecomponent loops to block 5101 to select the next pacing location, elsethe component continues at block 5105. In decision block 5105, if theconfiguration parameters of the simulated cardiogram match the patientconfiguration parameters, then the component continues at block 5106,else the component loops to block 5103 to select the next simulatedcardiogram. In block 5106, the component adds the simulated cardiogramto the training data and loops to block 5106 to select the nextsimulated cardiogram. In block 5107, the component trains the mappingfunction to map the simulated cardiograms of the training data to thepatient cardiograms and then completes.

FIG. 52 is a flow diagram that illustrates the processing of a transformsimulated cardiograms component of the CSC system in some embodiments.The transform simulated cardiograms component 5200 applies the mappingfunction to simulated cardiograms to generate a ML calibrated collectionof simulated cardiograms. In block 5201, the component selects the nextpacing location of the patient cardiograms. In decision block 5202, ifall the pacing locations have already been selected, then the componentcompletes, else the component continues at block 5203. In block 5203,the component selects the next simulated cardiogram with that pacinglocation. In decision block 5204, if all such simulated cardiograms havealready been selected, then the component loops to block 5201 to selectthe next pacing location, else the component continues at block 5205. Indecision block 5205, if the configuration parameters of the simulatedcardiogram match the patient configuration parameters, then thecomponent continues at block 5206, else the component loops to block5203 to select the next simulated cardiogram. In block 5206, thecomponent applies the mapping function to the simulated cardiogram togenerate a ML transformed simulated cardiogram. In block 5207, thecomponent adds the ML transformed simulated cardiogram to the MLcalibrated collection and loops to block 5203 to select the nextsimulated cardiogram.

Although described primarily in the context of an electromagnetic sourcethat is a heart, the CSC system may be used to calibrate simulatedelectromagnetic outputs for other electromagnetic sources with a body.The CSC system and the other systems described herein may be used, forexample, when the body is a human body or body of another animal andwhen the electromagnetic source is a heart, a brain, a liver, a lung, akidney, a muscle, or another part of the body that generates anelectromagnetic field that can be measured from outside or inside thebody. Also, the patient pacing may be performed using an invasive pacingdevice that administers electromagnetic pulses from inside theelectromagnetic source such as a catheter. The patient pacing may beperformed using a non-invasive pacing device that administerselectromagnetic pulses from outside the electromagnetic source such as amagnetic resonance scanner. A non-invasive pacing device may generate anelectromagnetic field to pace the electromagnetic source of the patient.

User Interface for Calibrating Orientation

In some embodiments, the user interface calibrating (“UIC”) system ofthe CSC system provides a user interface for manual calibration of theorientation of a patient VCG to a simulated VCG. The UIC systemaccessing patient ECGs collected during normal sinus rhythm and/or basedon pacing at various pacing locations that may be identified based onstudy imaging data (e.g., from a chest x-ray or a catheter systemlocalization system). The UIC system then extracts segments whoseactivation source location are known from the ECGs and then denoises thesegments. The UIC system then generates VCGs from the segments. The UICsystem then selects simulated cardiograms with source locations similarto those of the accessed patient ECGs.

FIG. 53 illustrates the user interface for manually calibratingorientation. Display 5300 includes a patient representation 5310 and asimulated representation 5320. To generate the patient representation,the UIC system renders patient VCGs 5311 and 5312 for patient sourcelocations as three-dimensional (“3D”) surfaces. The patient VCGs may besuperimposed on a torso model 5315 to provide an anatomical referenceframe such as a coronal view and/or an orthogonal view, which can berotated in 3D. To generate the simulated representation, the UI systemrenders simulated VCGs 5321 and 5322 from the selected simulatedcardiograms with simulated source locations similar to the patientsource locations which may also be superimposed on a torso model 5325.The UIC system may also superimpose a representation of a heart 5326based on the cardiac geometry of the simulated cardiograms. A user canthen rotate the cardiac geometry with the simulated VCGs, which rotateswith the cardiac geometry, to align the simulated VCGs to the patientVCGs (based on a visual comparison). To assist in the alignment, the UICsystem may also generate an alignment score (e.g., based on a leastsquare fit) indicating closeness of the alignment of the rotated,simulated VCGs to the patient VCGs. When the user determines that theVCGs are aligned, the UIC system then generates a rotation matrix basedon the amount of rotation of the cardiac geometry needed to align thesimulated VCGs to the patient VCGs. The CSC system can use the rotationmatrix to identify orientation-similar cardiograms.

Identify Ablation Patterns

Methods and computing systems for identifying an ablation pattern andmethods for treating a patient based on the identified ablation patternare provided. In some embodiments, an ablation pattern identification(“API”) system identifies an ablation pattern for treating an EM sourceof a patient. The API system accesses a patient EM output of the EMsource (e.g., a heart or brain). The API system identifies non-ablationpattern information of a non-ablation pattern simulation based on asimulated source configuration and not based on an ablation pattern. Forexample, the non-ablation pattern information may be simulated EM output(e.g., a simulated ECG) generated from a non-ablation patternsimulation. The API system identifies the non-ablation patterninformation based on similarity of simulated EM output of a non-ablationpattern simulation to the patient EM output. The API system thenidentifies an ablation pattern based on the identified non-ablationpattern information and ablation pattern information associated with anablation pattern simulation. For example, the ablation pattern may beidentified based on a mapping of simulated EM output to ablationpatterns used in ablation pattern simulations. Each ablation patternsimulation is generated based on a simulated source configuration and anablation pattern. The API system then outputs an indication of theidentified ablation pattern as the potential ablation pattern for the EMsource of the patient.

In some embodiments, the API system accesses a model library ofnon-ablation pattern simulations and simulated derived EM data generatedfrom the simulated EM output of the model library. The model library maybe generated by the MLMO system. This model library is referred to as a“non-ablation pattern model library” and the simulations are referred as“non-ablation pattern simulations” because the simulations are based onsimulated source configurations that do not include ablation patterns.For example, if the EM source is a heart, then the non-ablation patternsimulations may be based on a simulated source location of an arrhythmiawithout assuming an ablation pattern and the simulated derived EM datamay be a VCG. The API system also generates an ablation pattern modellibrary that may include one or more ablation pattern simulations foreach simulated source configuration used to generate the non-ablationpattern model library. For each simulated source configuration, the APIsystem performs an ablation pattern simulation for each of a set ofablation patterns. Each ablation pattern simulation is used to identifythe results of that ablation pattern applied to the simulated sourcelocation of the simulated source configuration. If an ablation patternsimulation results in no arrhythmia, the ablation pattern is identifiedas being successful for stopping the arrhythmia for the simulated sourceconfiguration. Otherwise, it is identified as being unsuccessful. Forexample, if the set of ablation patterns includes 10 ablation patterns,the API system generates 10 ablation pattern simulations for eachsimulated source configuration. The number of successful ablationpatterns for the simulated source configurations may vary from 0 to 10.For example, one of the simulated source configurations may have 2successful ablation patterns and another may have 7 successful ablationpatterns.

In some embodiments, the API system identifies one or more potentialablation patterns for a patient by comparing the patient EM output (orpatient-derived EM data) to the simulated EM outputs (or simulatedderived EM data) to identify a matching simulated EM output. The APIsystem selects the simulated source configuration used in thenon-ablation pattern simulation from which the matching simulated EMoutput was generated. The API system then identifies the ablationpattern simulations based on that selected simulated sourceconfiguration. The API system selects the successful ablation patternsof those ablation pattern simulations as the potential ablationpatterns. For example, if the EM source is a heart of a patient and thepatient-derived data is a VCG, the API system uses the patient VCG toselect the simulated source configuration of the non-ablation patternsimulation used to generate the best matching simulated VCG. The APIsystem then identifies the ablation pattern simulations based on theselected simulated source configuration resulting in a successfulablation pattern. The API system then outputs the successful ablationpatterns as the potential ablation patterns for the patient.

In some embodiments, the API system is used to assist with a method oftreating a patient, for example, when treating a patient with anarrhythmia (or more generally a tachycardia). An ablation assist (“AA”)system is used to assist a physician in treating the patient. A patientVCG of the patient collected during the arrhythmia is input to the AAsystem. The AA system then provides the patient VCG to the API system.In response, the API system outputs an indication of one or morepotential ablation patterns for the ablation and may output one or moretarget sites for the ablation. The physician then selects a potentialablation pattern and target site. To assist in the selection, the AAsystem may display an ablation pattern superimposed at the target siteon a representation of the patient's heart. The displayed representationmay be based on the anatomical characteristics of the patient's heart.When using a stereotactic body radiation therapy (“SBRT”) device,anatomical characteristics of the patient can be determined from imagescollected as part of the therapy (e.g. “scout” images). The AA systemmay provide the selected ablation pattern and the source location to anablation device (e.g., an SBRT device) for automatic positioning.Alternatively, the physician may manually position the ablation device(e.g., catheter). When the patient is ready for the ablation, the energyis activated to perform the ablation based on the selected ablationpattern. The ablation device may be an SBRT device, an ablationcatheter, a cryoablation catheter, an implantable pulse generator, andso on.

FIG. 54 is a flow diagram that illustrates the overall processing of theAPI system in some embodiments. An identify ablation pattern component5400 identifies an ablation pattern based on patient-derived EM data. Inblock 5401, the component accesses the derived EM data (e.g., VCG). Inblock 5402, the component identifies a non-ablation pattern simulationof the model library based on the simulated derived EM data that bestmatches the patient-derived EM data. In block 5403, the componentretrieves the simulated source configuration used to generate theidentified non-ablation pattern simulation. In block 5404, the componentidentifies the ablation pattern simulation performed using the retrievedsimulated source configuration. In block 5405, the component retrievesthe ablation patterns associated with the identified ablationsimulation. In block 5406, the component outputs an indication of theretrieved ablation patterns and then completes.

FIG. 55 is a flow diagram that illustrates the processing of a generatemapping function of the API system in some embodiments. The generatemapping function 5500 generates a mapping function that may be used toidentify a potential source location and potential ablation pattern. Inblock 5501, the component accesses the ablation pattern simulations. Inblock 5502, the component selects the next ablation pattern simulation.In decision block 5503, if all the ablation pattern simulations havealready been selected, then the component continues at block 5506, elsethe component continues at block 5504. In block 5504, the componentgenerates a feature vector based on the simulated source configurationof the selection ablation pattern simulation. The features of the vectormay include all the simulated source configurations or a subset of thesimulated source configurations that is particularly relevant toidentifying a source location and an ablation pattern along with otherinformation such as a simulated EM data generated from the non-ablationpattern simulation that used the simulated source configuration. Inblock 5505, the component labels the feature vector based on thesimulated source location and the ablation pattern of the selectedablation pattern simulation and then loops to block 5502 to select thenext ablation pattern simulation. In block 5506, the component trainsthe mapping function using the feature vectors and labels and thencompletes.

FIG. 56 is a block diagram that illustrates the processing of a methodfor treating a patient during an ablation in some embodiments. Themethod 5600 accesses patient-derived EM data (e.g., VCG) as an initialstep in the processing. In step 5601, the method identifies a sourcelocation and ablation pattern to be used. This identification may bemade by generating a feature vector based on features derived from apatient source configuration of the patient and patient-derived EM dataand then applying the mapping function trained by the API system.Alternatively, the identification may be made by identifying anon-ablation pattern simulation with simulated EM data that best matchesthe patient EM data and then using the simulated source configuration toidentify an ablation pattern simulation generated using that simulatedsource configuration. In step 5602, the method positions or directs(i.e., aims) an ablation device (e.g., neuromodulation device) based onthe identified source location. In step 5603, the method applies ordirects energy using the ablation device (e.g. neuromodulation device)at a target site derived from the identified source location and basedon the identified ablation pattern.

FIG. 57 is a block diagram that illustrates components of the API systemin some embodiments. A generate ablation pattern simulations component5702 inputs an EM source model 5701 and parameter sets of sourceconfigurations and performs simulations based on the sourceconfigurations using the heart models. The ablation pattern simulationcomponent then stores a mapping of the source configurations to theablation patterns in a source configuration/ablation pattern mappingstore 5703. A direct ablation component 5704 inputs the patient sourceconfiguration and patient-derived EM data and accesses a derived EMdata/source configuration mapping store 5707 and the sourceconfiguration/ablation pattern mapping store to identify a sourcelocation and an ablation pattern and controls the performing of anablation. A send instructions component 5705 inputs the source locationand ablation pattern and sends instructions to an ablation device 5706.

FIG. 58 is a flow diagram that illustrates the processing of a generateablation pattern simulations component of the API system in someembodiments. The generate ablation pattern simulations component 5800inputs a source configuration and maps the source configuration tosuccessful ablation patterns. The component is invoked for each sourceconfiguration. In block 5801, the component accesses ablation patternsto be used in the ablation pattern simulations. The API system may usethe same ablation patterns for each source configuration. Alternatively,the API system may select the ablation patterns based on the sourcelocation because different ablation patterns may be more effective atdifferent source locations. In block 5802, the component selects thenext ablation pattern and sets a variable i to the selected ablationpattern. In decision block 5803, if all the ablation patterns havealready been selected, then the component continues at block 5810, elsethe component continues at block 5804. In block 5804, the componentinitializes the variable j to zero to track each step of the ablationpattern simulation. In decision block 5805, the component increments thevariable j and determines whether the variable j is greater than thenumber of simulation steps, indicating that the ablation patternsimulation is complete. If complete, the component continues at block5809, else the component continues at block 5806 to perform the nextstep of the simulation. In block 5806, the component applies the modelto the selected ablation pattern for the next step of the ablationpattern simulation. In decision block 5807, if the ablation patternsimulation indicates that the arrhythmia has stopped, then the componentcontinues at block 5808, else the component loops to block 5805 toperform the next step of the simulation. In block 5808, the componentmarks the ablation pattern as successful and loops to block 5802 toselect the next ablation pattern. In block 5809, the component marks theablation pattern as unsuccessful because the ablation simulation hasbeen completed but the arrhythmia has not been stopped. The componentthen loops to block 5802 to select the next ablation pattern. In block5810, the component maps the source configuration to the ablationpatterns that are successful and completes.

FIG. 59 is a block diagram illustrating the processing of a directablation component of the API system in some embodiments. The directablation component 5900 is invoked to direct the ablation for a patient.In block 5901, the component receives images of the EM source of thepatient. In block 5902, the component generates a patient sourceconfiguration based on the image and other information provided aboutthe patient such as scar location, prior ablations, current medications,and so forth. In block 5903, the component receives the patient-derivedEM data (e.g., VCG). In block 5904, the component invokes an identifypotential ablation patterns component. In block 5905, the componentinvokes a select actual ablation pattern component to select an ablationpattern for use in the ablation. In block 5906, the component outputsablation instructions generated based on the actual ablation pattern.The ablation instructions may be provided directly to an ablation deviceor displayed to a physician. The component then completes.

FIG. 60 is a flow diagram that illustrates the processing of an identifypotential ablation patterns component of the API system in someembodiments. The identify potential ablation pattern component 6000 isinvoked to identify potential ablation patterns for the ablation. Inblock 6001, the component receives the patient source configuration andthe patient-derived EM data. In block 6002, the component identifies oneor more ablation pattern simulations based on the patient sourceconfiguration and the patient-derived EM data. In block 6003, thecomponent selects the next matching ablation pattern simulation. Indecision block 6004, if all the matching ablation pattern simulationshave already been selected, then the component completes, else thecomponent continues at block 6005. In block 6005, the component adds toa set of instructions the matching ablation pattern and the sourcelocation of the selected matching ablation pattern simulations. Thecomponent may also add a target volume to the ablation instructions. Thetarget volume may be a parameter of the source configuration used whengenerating the non-ablation pattern simulations. The component thenloops to block 6003 to select the next matching ablation pattern.

FIG. 61 is a flow diagram that illustrates the processing of a selectactual ablation pattern component of the API system in some embodiments.The select actual ablation pattern component 6100 is invoked passing anindication of patient anatomical characteristics, potential ablationpatterns, and corresponding source locations. The component identifiesan actual ablation pattern to be used in the ablation. In block 6101,the component displays a 3D representation of the patient EM sourcebased on the patient anatomical characteristics. In block 6102, thecomponent displays a list of the potential ablation patterns andcorresponding source locations. In block 6103, the component receives aselection of a potential ablation pattern. In block 6104, the componentsuperimposes the selected partial ablation pattern and source locationon the 3D representation. In decision block 6105, if the physician hasindicated to use the selected potential ablation pattern as the actualablation pattern, the component completes, else the component loops toblock 6103 to display another potential ablation pattern.

Remote Collection of EM Data

In some embodiments, a remote EM data collection (“REMDC”) system mayreceive EM data of an EM source collected from a patient who is not in aclinical setting. For example, a patient may visit a clinic to be fittedwith a portable EM data collection (“PEMDC”) device (e.g., a Holtermonitor) that collects the EM data (e.g., ECG). Additionally,non-prescribed PEMDC devices may be used (e.g., a wearable device suchas a smart watch; an external mobile device equipped withelectromagnetic sensors; epidermial-, dermial-, or hypodermial-embeddedelectromagnetic sensors; smart clothing with embedded electromagneticsensors). When the patient leaves the clinic, the PEMDC device maycollect EM data of the patient on a periodic or continuous basis. ThePEMDC device allows the collected EM data to be transmitted to the REMDCsystem when the patient is remote from the clinic. For example, thePEMDC device may include a wireless interface to transmit the collectedEM data using a WiFi, cellular, Bluetooth, or other connection. Whenusing a WiFi connection, the PEMDC device may transmit the collected EMdata directly to the REMDC system whenever the PEMDC device can connectto a WiFi network that has internet access. When using a cellularconnection (e.g., cellular transmitter/receiver embedded in the PEMDCdevice), the PEMDC device may transmit the collected EM data directly tothe REMDC system whenever the PEMDC device is within range of a cellularnetwork. When using a Bluetooth connection (e.g., a Bluetoothtransmitter/receiver embedded in the PEMDC device), the PEMDC device maytransmit the collection EM data to a smart phone, smart watch, desktopcomputer, or other Bluetooth enabled device. The PEMDC device may alsohave a wired interface to transmit the collected EM data via a wire(e.g., a universal serial bus (“USB”) cable) to a computing device(e.g., laptop), which forwards the collected EM data to the REMDCsystem. The PEMDC device may transmit the collected data on a scheduledbasis (e.g., once an hour), as soon as collected, when requested by theREMDC system, or some other criteria such as based on an analysis of thecollected EM data perform by a program installed on the PEMDC.

When the REMDC system receives the collected EM data, the collected EMdata may be processed by any of the systems described herein. Forexample, when the EM data is an ECG, the REMDC system may use theclassifier generated by the MLMO system to identify a source locationbased on the collected ECG. As another example, the REMDC system may usethe PSMC system to generate a patient-specific model classifier that canthen be used to identify a source location. As another example, theREMDC system may use the CSC system to generate a calibrated collectionof simulations.

Because the REMDC system can process the collected EM data before thepatient returns to the clinic, a care provider will be able to analyzethe outputs of the various systems and identify a course of action(e.g., recommending a procedure, an ablation and an ablation pattern)before the patient returns. In such a case, the delay associated withthe various systems processing EM data after the EM data is collectedwhile the patient is in the clinic can be avoided. In addition, the costof the computational resources needed process the EM data can be muchless when the EM data is collected before the patient returns to theclinic. Also, prior to a patient returning to the clinic, the careprovider can review the outputs of the various systems and ask thepatient to return earlier or later than expected based on that review.Finally, using the results of the collected EM data, the care providercan better allocate and execute the necessary time and other medicalresources needed to administer optimal patient care.

Recording Patient Study Results in a Distributed Ledger

A method and a system are provided for storing in a distributed ledgerstudy results of procedures performed on patients. In some embodiments,a distributed ledger for study results (“DLSR”) system stores study (orprocedure) results of procedures performed on an electromagnetic sourceof patients. A computational targeting procedure may be used to identifya procedure target for a procedure based on mappings of electromagneticdata derived from the electromagnetic source to procedure targets. Thecomputational targeting procedure may be a classifier trained using themappings generated to identify a procedure target. The MLMO system maybe used to generate such classifiers. The computational targetingprocedure may alternatively identify the electromagnetic data of amapping that is most similar to the electromagnetic data of a patientand identify the procedure target of that mapping for use in theprocedure. The electromagnetic data of the mappings may be simulated oractual patient data. In the following, an embodiment of thecomputational target procedure is described as using a classifier toidentify procedure targets.

In some embodiments, the electromagnetic source may be a heart, and theprocedure may be an ablation procedure performed by a physician based onan ablation target identified using a classifier. The DLSR system mayapply classifiers to identify ablation targets of hearts based onelectrocardiograms of patients. Each classifier may be trained usingtraining data generated from modeled electrocardiograms for a pluralityof heart configurations. The modeled electrocardiograms may be generatedusing a computational model of the heart that models electromagneticoutput of the heart over time based on a heart configuration. The DLSRsystem selects a classifier based on the electrocardiogram of a patientmatching a modeled electrocardiogram. The DLSR system receives resultsof ablation procedures performed on the patients based on the identifiedablation targets. For each ablation procedure, the DLSR system generatesan ablation procedure record of the result of the ablation procedure.The ablation procedure record identifies the patient and any otherinterested parties (e.g., physicians, insurance companies, regulator,and healthcare providers) in the ablation procedure and includes areference to the result of the ablation procedure. The DLSR systempublishes each ablation procedure record for recording in a distributedledger for access by permissioned parties.

In some embodiments, the distributed ledger is a blockchain. Distributedledgers and specifically blockchains are described below. The referenceto the result of an ablation procedure and an electronic medical recordof the patient may be stored by interested parties. An interested partythat stores the result of ablation procedure may control access by aparty to the result. A party may be provided access to classifierstrained using training data generated from modeled electrocardiogramsbased on the quantity and quality of ablation procedures records thatthe party stores in the blockchain. An ablation procedure may be one ofseveral ablation procedures performed on the patient during an ablationstudy, and the ablation procedures records for the patient may be storedin the same block of the distributed ledger. Each block of thedistributed ledger may store ablation procedure records for only onepatient. The computational resources needed to maintain the distributedledger may be provided by miners of the distributed ledger. The minersmay be provided access to classifiers trained using training datagenerated from modeled electrocardiograms for a plurality of heartconfigurations based on the mining performed by the miner. A miner formining a block may be selected based on a proof-of-stake consensusalgorithm.

FIG. 62 is a block diagram that illustrates components of the DLSRsystem in some embodiments. The DLSR system comprises a MLMO system6210, a collect electrophysiology (“EP”) data component 6230, a studysystem 6240, a transaction generator system 6250, interested partysystems 6261-64, miner systems 6270, access distributed ledger systems6280, and distributed ledger 6290. In some embodiments, the MLMO systemgenerates heart configurations, applies computational modeling of theheart to simulate function of the heart, and generates theelectrocardiogram based on the simulated function. The MLMO systemstores the results in MLMO store 6211. The MLMO store may store amapping of modeled electrocardiograms to source locations.

In some embodiments, the MLMO system may define tasks relating tosupporting the MLMO system such as running simulations and mining forthe distributed ledger. A task may be implemented as a container that isdeployed and orchestrated by a container-based system such as one basedon an Amazon Web Services (“AWS”) Elastic Container Repository or AWSbatch. The MLMO system may allow miners or other contributors to runtasks on the servers of the MLMO system. For example, a miner may run amining task. A report may be generated that identifies each contributorwho runs a task and the computational resources used to run the task. Acontributor may be charged for the computational resources (e.g., CPU,storage) used and may be rewarded with task tokens as an incentive torun tasks. For example, a miner who runs a mining task to mine a blockor a contributor who runs a simulation task is rewarded, based on thecomputational resources used to run the task, with one or more tasktokens that are recorded in the distributed ledger. The owner of a tasktoken can then exchange the task token for access to various resourcestracked in the distributed ledger. For example, a task token may beexchanged for access to results of certain studies. The number of tasktokens rewarded to a miner may also be used in a proof-of-stakeconsensus algorithm to select a miner to mine a block. (In a similarmanner, a party that submits procedure records for recording in theblockchain may be awarded record tokens, which may be exchanged foraccess to resources.) To support the running of simulations, the MLMOsystem may maintain a queue of simulation tasks to run or to complete.When a simulation task is to run, the code of the container removes thesimulation task from the top of the queue and runs the simulation task.For example, if a simulation is not yet complete, the queue wouldcontain a simulation task for completing that simulation task. Whenevera simulation is not completed by a simulation task (e.g., because thecontributor signed up to expend a certain amount of computationalresource that was not sufficient to complete the simulation task), thecontainer that ran that simulation task would add to the queue (e.g.,front of the queue or more precisely a doubly ended queue or deque) anew simulation task to continue the simulation. In addition tosimulation tasks, the MLMO system may add pre-simulation tasks andpost-simulation tasks to the queue. The pre-simulation task may relateto constructing a model or simulation initialization. Thepost-simulation tasks may relate to training a classifier (or othermachine learning), validation of the simulation results, and makinginferences based on the simulations.

The patient store 6220 stores electronic medical records of patients.Although illustrated as a single database, the electronic medical recordof a single patient may be housed by various entities such as hospitals,physicians, laboratories, and so on. In addition, the electronic medicalrecords may be accessible via a distributed ledger system that is eithera permissioned distributed ledger system or a public distributed ledgersystem that complies with various regulations such as the HealthInsurance Portability and Accountability Act (“HIPPA”). The collect EPdata system 6230 collects electrophysiology data of patients and storesthe electrophysiology data in EP study store 6231. The study system 6240inputs electrophysiology data for an EP study of the patient andinformation from an electronic medical record of the patient, selects aclassifier from the MLMO store, applies the classifier to the patientdata to identify an ablation target, and stores study information instudy store 6241.

A transaction generator system 6250 accesses the study store andgenerates records (e.g., transactions) for storing in the distributedledger. The transaction generator system may also receive informationfrom an insurance system 6261, a regulator system 6262, the healthcareprovider system 6263, and a physician system 6264. Once a record isgenerated, the interested parties may sign the record using theirprivate key. In such a case, the transaction generator system may send arecord to the insurance system, the regulator system, the healthcareprovider system, and/or the physician system for signing. Thetransaction generator system then publishes a record to the minersystems 6270. The miner systems may implement a proof-of-stake consensusalgorithm or some other consensus algorithm for identifying which minersystem is to generate a block storing a distributed ledger 6290. Thedistributed ledger includes blocks 6291 that each may represent a studyfor a single patient that includes a transaction for each procedureperformed as part of that study. The access distributed ledger systems6280 may have access to the distributed ledger based on permissions. Forexample, a certain class of access distributed ledger systems may beconfigured with a private key for accessing certain records that havebeen encrypted with a public key. Alternatively, the access ledgersystems may access a front-end system to the distributed ledger thatcontrols access to the blockchain distributed ledger.

FIG. 63 is a block diagram that illustrates the structure of a block andrecords within the block in some embodiments. A block 6310 includes ablock header 6211 and transactions 6212. The block header may include ablock hash that is a hash of data of the block including the previousblock hash of the previous block in the blockchain and the hash of theroot node of a Merkle tree of the hashes of the transactions. Thestructure of a blockchain is described below in detail. A transaction6320 may include a timestamp of when the transaction is generated, astudy identifier, a procedure identifier, a patient identifier, aphysician identifier, a healthcare provider identifier, an insuranceprovider, and a regulator identifier. The transaction may also includesignatures on various interested parties verifying transaction. Thetransaction may also include various pointers to information relating tothe study such as a pointer to the study store and a pointer to summaryinformation generated from the study store, the patient store, and theEP study store.

FIG. 64 is a flow diagram that illustrates the processing of a studysystem in some embodiments. A study system component 6400 is passed anindication of the patient and coordinates the performing by a physiciana procedure on the patient. In block 6401, the component accesses thepatient store and the EP study store to retrieve information relating tothe patient. In block 6402, the component selects the classifier fromthe MLMO store based on matching with patient data and theelectrophysiology data. In block 6403, the component applies theclassifier to electrocardiogram of patient. In block 6404, the componentpresents the ablation target for targets to the physician. In block6405, the component receives ablation result of the procedure. In block6406, the component stores the result in the study store and thencompletes.

FIG. 65 is a flow diagram that illustrates the processing of atransaction generator system in some embodiments. A transactiongenerator system component 6500 may run periodically to generate atransaction for storing in the distributed ledger. In block 6501, thecomponent retrieves a reference to a result of the procedure from thestudy store. In block 6502, the component identifies the interestedparties to procedure based on the patient identified in the result. Inblock 6503, the component may generate a timestamp. In 6504, thecomponent generates a transaction that identifies the interestedparties, a timestamp, and a reference to the results stored in the studystore. In block 6505, the component may obtain signatures frominterested parties. The permissions of the interested parties may beneeded to record a transaction in the distributed ledger. In block 6506,the component publishes the transaction to the miner systems and thencompletes.

FIG. 66 is a flow diagram that illustrates the processing of a minersystem in some embodiments. A miner component 6600 may be invokedperiodically to generate a block or blocks of procedures to store in thedistributed ledger. In block 6601, the component executes aproof-of-stake consensus algorithm to determine whether the miner systemis selected to generate the next block. In decision block 6602, ifselected, the component continues at block 6603, else the componentcompletes. In block 6603, the component adds the transactions of a studyto a block. In block 6604, the component generates and adds a Merkletree to the block. In block 6605, the component adds the hash of theprevious block to the block. In block 6606, the component adds theaddress of the miner to the block. In block 6607, the component adds ahash of the entire block to the block. In block 6608, the component addsa signature of the miner to the block. In block 6609, the componentpublishes the block and then completes. The component may also add acreation timestamp for the block that may be used when other minersystems verify that the block was created by the miner identified by theproof-of-stake algorithm.

Distributed Ledger

Distributed ledgers are currently being used in a wide variety ofbusiness applications. The bitcoin system is an example of a distributedledger. The bitcoin system was developed to allow electronic cash to betransferred directly from one party to another without going through afinancial institution, as described in the white paper entitled“Bitcoin: A Peer-to-Peer Electronic Cash System” by Satoshi Nakamoto. Abitcoin (e.g., an electronic coin) is represented by a chain oftransactions that transfers ownership from one party to another party.To transfer ownership of a bitcoin, a new transaction is generated andadded to a stack of transactions in a block. The new transaction, whichincludes the public key of the new owner, is digitally signed by theowner with the owner's private key to transfer ownership to the newowner, as represented by the new owner public key. The signing by theowner of the bitcoin is an authorization by the owner to transferownership of the bitcoin to the new owner via the new transaction. Oncethe block is full, the block is “capped” with a block header that is ahash digest of all the transaction identifiers within the block. Theblock header is recorded as the first transaction in the next block inthe chain, creating a mathematical hierarchy called a “blockchain.” Toverify the current owner, the blockchain of transactions can be followedto verify each transaction from the first transaction to the lasttransaction. The new owner need only have the private key that matchesthe public key of the transaction that transferred the bitcoin. Theblockchain creates a mathematical proof of ownership in an entityrepresented by a security identity (e.g., a public key), which in thecase of the bitcoin system is pseudo-anonymous.

To ensure that a previous owner of a bitcoin did not double-spend thebitcoin (i.e., transfer ownership of the same bitcoin to two parties),the bitcoin system maintains a distributed ledger of transactions. Withthe distributed ledger, a ledger of all the transactions for a bitcoinis stored redundantly at multiple nodes (i.e., computers) of ablockchain network. The ledger at each node is stored as a blockchain.In a blockchain, the transactions are stored in the order that thetransactions are received by the nodes. Each node in the blockchainnetwork has a complete replica of the entire blockchain. The bitcoinsystem also implements techniques to ensure that each node will storethe identical blockchain, even though nodes may receive transactions indifferent orderings. To verify that the transactions in a ledger storedat a node are correct, the blocks in the blockchain can be accessed fromoldest to newest, generating a new hash of the block and comparing thenew hash to the hash generated when the block was created. If the hashesare the same, then the transactions in the block are verified. Thebitcoin system also implements techniques to ensure that it would beinfeasible to change a transaction and regenerate the blockchain byemploying a computationally expensive technique to generate a nonce thatis added to the block when it is created. A bitcoin ledger is sometimesreferred to as an Unspent Transaction Output (“UTXO”) set because ittracks the output of all transactions that have not yet been spent.

Although the bitcoin system has been very successful, it is limited totransactions in bitcoins or other cryptocurrencies. Blockchains havebeen developed to support transactions of any type, such as thoserelating to the sale of vehicles, sale of financial derivatives, sale ofstock, payments on contracts, and so on. Such transactions use identitytokens to uniquely identify something that can be owned or can own otherthings. An identity token for a physical or digital asset is generatedusing a cryptographic one-way hash of information that uniquelyidentifies the asset. Tokens also have an owner that uses an additionalpublic/private key pair. The owner public key or hash of the ownerpublic key is set as the token owner identity, and when performingactions against tokens, ownership proof is established by providing asignature generated by the owner private key and validated against thepublic key or hash of the public key listed as the owner of the token. Aperson can be uniquely identified, for example, using a combination of auser name, social security number, and biometric (e.g., fingerprint).The creation of an identity token for an asset in a blockchainestablishes provenance of the asset, and the identity token can be usedin transactions (e.g., buying, selling, insuring) involving the assetstored in a blockchain, creating a full audit trail of the transactions.

To enable more complex transactions than bitcoin can support, somesystems use “smart contracts.” A smart contract is a decentralizedcomputer program that comprises code and a state. A smart contract canperform virtually any type of processing such as sending money,accessing external databases and services (e.g., oracles), and so on. Asmart contract may be executed in a secure platform (e.g., Ethereumplatform, which provides a virtual machine) that supports recordingtransactions in a blockchain. The smart contract code itself may berecorded as a transaction in the blockchain using an identity token thatis a hash of the smart contract code so that it can be authenticated.When deployed, a constructor of the smart contract executes,initializing the smart contract and its state. In Ethereum, a smartcontract is associated with a contract account. There are two types ofaccounts in Ethereum: externally owned accounts (“EOA”), which arecontrolled by private keys, and contract accounts, which are controlledby computer code. Accounts contain the following fields: a balance, code(if present), and a storage (empty by default). The code of a smartcontract is stored as the code in a contract account, and the state ofthe smart contract is stored in the contract account's storage, whichthe code can read from and write to. An EOA has no code and does notneed a storage, so those two fields are empty in an EOA. Accounts have astate. The state of an EOA comprises only a balance, whereas the stateof a contract account comprises both a balance and a storage. The statesof all accounts are the state of the Ethereum network, which is updatedwith every block and about which the network needs to reach a consensus.An EOA can send transactions to other accounts by signing thetransactions with the private key of the EOA account. A transaction is asigned data package that contains a message to be sent from an EOA tothe recipient account identified in the transaction. Like an EOA, acontract account, under control of its code, can also send messages toother accounts. However, a contract account can send messages only inresponse to transactions that it has received. Therefore, all action inthe Ethereum blockchain is triggered by transactions sent from EOAs. Amessage sent by a contract account differs from a transaction sent by anEOA in that a message sent by a contract account does not include acryptographic signature since a contract account is not controlled by aprivate key. When a contract account receives a message, every miningnode that maintains a replica of the blockchain executes the code of thecontract account as part of the block validation process. So if atransaction is added into a block, all nodes that validate the blockexecutes the code whose execution is triggered by that transaction.Although the execution of the computer code at each node helps ensurethe authenticity of the blockchain, it requires large amounts ofcomputer resources to support such redundant execution of computer code.

Although blockchains can effectively store transactions, the largeamount of computer resources, such as storage and computational power,needed to maintain all the replicas of the blockchain can beproblematic. To overcome this problem, some systems for storingtransactions do not use blockchains, but rather have each party to atransaction maintain its own copy of the transaction. One such system isthe Corda system developed by R3, Ltd., which provides a decentralizeddistributed ledger platform in which each participant in the platformhas a node (e.g., computer system) that maintains its portion of thedistributed ledger. When parties agree on the terms of a transaction, aparty submits the transaction to a notary, which is a trusted node, fornotarization. The notary maintains an UTXO database of unspenttransaction outputs. When a transaction is received, the notary checksthe inputs to the transaction against the UTXO database to ensure thatthe outputs that the inputs reference have not been spent. If the inputshave not been spent, the notary updates the UTXO database to indicatethat the referenced outputs have been spent, notarizes the transaction(e.g., by signing the transaction or a transaction identifier with apublic key of the notary), and sends the notarization to the party thatsubmitted the transaction for notarization. When the party receives thenotarization, the party stores the notarization and provides thenotarization to the counterparties.

The following paragraphs describe various embodiments of aspects of theMLMO system and other system. An implementation of the systems mayemploy any combination of the embodiments. The processing describedbelow may be performed by a computing system with a processor thatexecutes computer-executable instructions stored on a computer-readablestorage medium that implements the system.

In some embodiments, a method performed by one or more computing systemsis provided for generating a classifier for classifying electromagneticdata derived from an electromagnetic source within a body. The methodaccesses a computational model of the electromagnetic source, whereinthe computational model is used for modeling electromagnetic output ofthe electromagnetic source over time based on a source configuration ofthe electromagnetic source. For each of a plurality of sourceconfigurations, the method generates, using the computational model, amodeled electromagnetic output of the electromagnetic source for thatsource configuration. The method, for each modeled electromagneticoutput, derives the electromagnetic data for the modeled electromagneticoutput and generates a label for the derived electromagnetic data basedon the source configuration for the modeled electromagnetic data. Themethod trains a classifier with the derived electromagnetic data andthen labels it as training data. In some embodiments, the modeledelectromagnetic output for a source configuration includes, for each ofa plurality of time intervals, an electromagnetic mesh with a modeledelectromagnetic value for each of a plurality of locations of theelectromagnetic source. In some embodiments, the derived electromagneticdata, for a time interval, is an equivalent source representation of theelectromagnetic output. In some embodiments, the equivalent sourcerepresentation is generated using principal component analysis. In someembodiments, the method further identifies cycles within the derivedelectromagnetic data for a modeled electromagnetic output. In someembodiments, the same label is generated for each cycle. In someembodiments, the method further identifies a sequence of cycles that aresimilar, wherein the same label is generated for each sequence. In someembodiments, the deriving of the electromagnetic data for a modeledelectromagnetic output includes normalizing the modeled electromagneticoutput on a per-cycle basis. In some embodiments, the classifier is aconvolutional neural network. In some embodiments, the convolutionalneural network inputs a one-dimensional image. In some embodiments, theclassifier is a recurrent neural network, an autoencoder, a restrictedBoltzmann machine, or other type of neural network. In some embodiments,the classifier is a support vector machine. In some embodiments, theclassifier is Bayesian. In some embodiments, the electromagnetic sourceis a heart, a source configuration represents a source location andother properties of a heart disorder, the modeled electromagnetic outputrepresents activation of the heart, and the electromagnetic data isbased on body-surface measurements such as an electrocardiogram. In someembodiments, the heart disorder is selected from a set consisting ofinappropriate sinus tachycardia (“IST”), ectopic atrial rhythm,junctional rhythm, ventricular escape rhythm, atrial fibrillation(“AF”), ventricular fibrillation (“VF”), focal atrial tachycardia(“focal AT”), atrial microreentry, ventricular tachycardia (“VT”),atrial flutter (“AFL”), premature ventricular complexes (“PVCs”),premature atrial complexes (“PACs”), atrioventricular nodal reentranttachycardia (“AVNRT”), atrioventricular reentrant tachycardia (“AVRT”),permanent junctional reciprocating tachycardia (“PJRT”), and junctionaltachycardia (“JT”).

In some embodiments, a method performed by a computing system isprovided for classifying electromagnetic output collected from a targetthat is an electromagnetic source within a body. The method accesses aclassifier to generate a classification for electromagnetic output of anelectromagnetic source. The classifier is trained using training datagenerated from modeled electromagnetic output for a plurality of sourceconfigurations of an electromagnetic source. The modeled electromagneticoutput is generated using a computational model of the electromagneticsource that models the electromagnetic output of the electromagneticsource over time based on a source configuration. The method collectstarget electromagnetic output from the target. The method applies theclassifier to the target electromagnetic output to generate aclassification for the target. In some embodiments, the training data isgenerated by running, for each of the source configurations, asimulation that generates an electromagnetic mesh for each of aplurality of simulation intervals, each electromagnetic mesh having anelectromagnetic value for a plurality of locations of theelectromagnetic source. In some embodiments, the electromagnetic sourceis a heart, a source configuration represents a source location of aheart disorder, and the modeled electromagnetic output representsactivation of the heart, and the classifier is trained usingelectromagnetic data derived from an electrocardiogram representation ofthe electromagnetic output.

In some embodiments, one or more computing systems are provided forgenerating a classifier for classifying electromagnetic output of anelectromagnetic source. The one or more computing systems include one ormore computer-readable storage mediums and one or more processors forexecuting the computer-executable instructions stored in the one or morecomputer-readable storage mediums. The one or more computer-readablestorage mediums store a computational model of the electromagneticsource. The computational model models electromagnetic output of theelectromagnetic source over time based on a source configuration of theelectromagnetic source. The one or more computer-readable storagemediums store computer-executable instructions for controlling the oneor more computing systems to, for each of a plurality of sourceconfigurations, generate training data from the electromagnetic outputof the computational model that is based on the source configuration andtrain the classifier using the training data. In some embodiments, thecomputer-executable instructions that generate the training data for asource configuration further control the one or more computing systemsto generate derived electromagnetic data from the electromagnetic outputfor the source configuration and generate a label for theelectromagnetic data based on the source configuration.

In some embodiments, a method performed by a computing system generatinga simulated anatomy of an electromagnetic source within a body isprovided. The method accesses seed anatomies of the electromagneticsource. Each seed anatomy has a seed value for each of a plurality ofanatomical parameters of the electromagnetic source. The method accessesa set of weights that includes a weight for each seed anatomy. For eachof the anatomical parameters, the method generates a simulated value forthat anatomical parameter by combining the seed values for thatanatomical parameter, factoring in the weights of the seed anatomies. Insome embodiments, the method validates the simulated anatomy based oncomparison to values for anatomical parameters found in a population. Insome embodiments, the anatomical parameters include dimensions of theelectromagnetic source and wherein a simulated value for a dimension isvalidated when a patient in the population includes value for thatdimension that is approximately the same as the simulated value. In someembodiments, the anatomical parameters of the seed anatomies arecollected by scanning actual electromagnetic sources within bodies. Insome embodiments, the electromagnetic source is a heart. In someembodiments, the method generates a simulated value for an anatomicalparameter based on a weighted average of the seed values for thatanatomical parameter. In some embodiments, the method further generatesa plurality of simulated anatomies wherein each simulated anatomy isbased on a different set of weights.

In some embodiments, a computing system for generating simulatedanatomies of a heart is provided. The computing system comprises one ormore computer-readable storage mediums storing seed anatomies of aheart, each seed anatomy having a seed value for each of a plurality ofanatomical parameters of a heart. The one or more computer-readablestorage mediums also stores sets of weights that each includes a weightfor each seed anatomy. The one or more computer-readable storage mediumsstore computer-executable instructions for controlling the computingsystem to, for each set of weights and for each of the anatomicalparameters for that set of weights, generate a simulated value for thatanatomical parameter by combining the seed values for that anatomicalparameter, factoring in the weights of the seed anatomies. The computingsystem further comprises one or more processors for executing thecomputer-executable instructions stored in the one or morecomputer-readable storage mediums. In some embodiments, the instructionsfurther control the computing system to validate each simulated anatomybased on comparison to values for anatomical parameters found in apopulation. In some embodiments, the anatomical parameters includethickness of walls of a heart and dimensions of a chamber of the heart.In some embodiments, a simulated value for a dimension is validated whena patient in the population includes value for that dimension that isapproximately the same as the simulated value. In some embodiments, theseed anatomies represent extremes of hearts found in a population. Insome embodiments, the anatomical parameters of the seed anatomies arecollected by scanning hearts. In some embodiments, the generating of asimulated value for an anatomical parameter is based on a weightedaverage of the seed values for that anatomical parameter. In someembodiments, a method performed by a computing system for generating anarrhythmia model library for modeling a heart is provided. The methodaccesses simulated anatomies of anatomical parameters of the heart. Thesimulated anatomies are generated based on seed anatomies of anatomicalparameters of the heart and sets of weights that include a weight foreach seed anatomy. The method accesses configuration parameters thatinclude one or more of torso anatomy, normal and abnormal cardiacanatomy, normal and abnormal cardiac tissue, scar, fibrosis,inflammation, edema, accessory pathways, congenital heart disease,malignancy, sites of prior ablation, sites of prior surgery, sites ofexternal radiation therapy, pacing leads, implantablecardioverter-defibrillator leads, cardiac resynchronization therapyleads, pacemaker pulse generator location, implantablecardioverter-defibrillator pulse generator location, subcutaneousdefibrillator lead location, subcutaneous defibrillator pulse generatorlocation, leadless pacemaker location, other implanted hardware (e.g.,right or left ventricular assist devices), external defibrillationelectrodes, surface ECG leads, surface mapping leads, a mapping vest,and other normal and pathophysiologic feature distributions within theheart, action potential dynamics for the heart, sets of conductivitiesfor the heart, arrhythmia source locations within the heart, and so on.The method establishes source configurations that are each based on asimulated anatomy and a combination of electrophysiology parameters. Foreach of a plurality of the source configurations, the method generates amesh based on the simulated anatomy of that source configuration, themesh having vertices, and for each vertex of the mesh, generates modelparameters of a computational model of the heart based on thecombination of electrophysiology parameters of that sourceconfiguration. The computational model for modeling electromagneticpropagation at that vertex is based on the electrophysiology parametersof that source configuration. In some embodiments, the method generatesa simulated anatomy by accessing seed anatomies of a heart where eachseed anatomy has a seed value for each of the anatomical parameters ofthe heart; accesses a set of weights that includes a weight for eachseed anatomy; and for each of the anatomical parameters, generates asimulated value for that anatomical parameter by combining the seedvalues for that anatomical parameter, factoring in the weights of theseed anatomies. In some embodiments, the simulated anatomies arevalidated based on comparison to values for anatomical parameters foundin a population. In some embodiments, the anatomical parameters of theseed anatomies are collected by scanning actual hearts. In someembodiments, for each of a plurality of source configurations, themethod generates a modeled electromagnetic output of the heart for thatsource configuration using a computational model for the heart. In someembodiments, for each source configuration, the method generatestraining data for the modeled electromagnetic output that is based onthat source configuration; and trains a classifier for classifyingelectromagnetic output of the heart using the training data.

In some embodiments, a computing system for generating a model libraryof models of an electromagnetic source within a body is provided. Thecomputing system comprises one or more computer-readable storage mediumsstoring computer-executable instructions and one or more processors forexecuting the computer-executable instructions stored in the one or morecomputer-readable storage mediums. The instructions control thecomputing system to generate simulated anatomies of anatomicalparameters of the electromagnetic source from seed anatomies andgenerate source configurations that are each based on a simulatedanatomy and a combination of configuration parameters. The instructionscontrol the computing system to, for each of a plurality of the sourceconfigurations, generate a mesh based on the simulated anatomy of thatsource configuration, the mesh having vertices; and for each vertex ofthe mesh, generate model parameters of a computational model of theelectromagnetic source based on the combination of configurationparameters of that source configuration. In some embodiments, thecomputational model for modeling electromagnetic propagation at a vertexis based on the configuration parameters of a source configuration. Insome embodiments, the simulated anatomies are generated based onanatomical parameters of the seed anatomies and sets of weights thatinclude a weight for each seed anatomy. In some embodiments, theelectromagnetic source is a heart and the configuration parametersinclude one or more of torso anatomy, normal and abnormal cardiacanatomy, normal and abnormal cardiac tissue, scar, fibrosis,inflammation, edema, accessory pathways, congenital heart disease,malignancy, sites of prior ablation, sites of prior surgery, sites ofexternal radiation therapy, pacing leads, implantablecardioverter-defibrillator leads, cardiac resynchronization therapyleads, pacemaker pulse generator location, implantablecardioverter-defibrillator pulse generator location, subcutaneousdefibrillator lead location, subcutaneous defibrillator pulse generatorlocation, leadless pacemaker location, other implanted hardware (e.g.,right or left ventricular assist devices), external defibrillationelectrodes, surface ECG leads, surface mapping leads, a mapping vest,and other normal and pathophysiologic feature distributions within theheart, action potential dynamics for the heart, sets of conductivitiesfor the heart, and arrhythmia source locations within the heart. In someembodiments, the simulated anatomies are validated based on comparisonto values for anatomical parameters found in a population. In someembodiments, the anatomical parameters of the seed anatomies arecollected by scanning actual electromagnetic sources. In someembodiments, the computer-executable instructions further control thecomputing system to, for each of a plurality of source configurations,generate a modeled electromagnetic output of the electromagnetic sourcefor that source configuration using a computational model for theelectromagnetic source. In some embodiments, computer-executableinstructions further control the computing system to, for each sourceconfiguration, generate training data for the modeled electromagneticoutput that is based on that source configuration; and train aclassifier for classifying electromagnetic output of the electromagneticsource using the training data.

In some embodiments, a method performed by a computing system forgenerating a model library of models of an electromagnetic source withina body is provided. The method accesses simulated anatomies ofanatomical parameters of the electromagnetic source. The methodgenerates source configurations that are each based on a simulatedanatomy and a combination of configuration parameters. For each of aplurality of the source configurations, the method generates a modelbased on the simulated anatomy of that source configuration, thecombination of configuration parameters of that source configuration,and a computational model of the electromagnetic source. In someembodiments, the generating of a model includes generating a mesh basedon the simulated anatomy of that source configuration and, for eachvertex of the mesh, generating model parameters of a computational modelof the electromagnetic source based on the combination of configurationparameters of that source configuration. In some embodiments, thecomputational model is for modeling electromagnetic propagation at avertex based on the configuration parameters of a source configuration.In some embodiments, the electromagnetic source is a heart and themodels are arrhythmia models. In some embodiments, the method furthergenerates the simulated anatomies based on anatomical parameters of seedanatomies and sets of weights that include a weight for each seedanatomy. In some embodiments, the electromagnetic source is a heart andthe configuration parameters include one or more of a human torso,normal and abnormal cardiac anatomy, normal and abnormal cardiac tissue,scar, fibrosis, inflammation, edema, accessory pathways, congenitalheart disease, malignancy, sites of prior ablation, sites of priorsurgery, sites of external radiation therapy, pacing leads, implantablecardioverter-defibrillator leads, cardiac resynchronization therapyleads, pacemaker pulse generator location, implantablecardioverter-defibrillator pulse generator location, subcutaneousdefibrillator lead location, subcutaneous defibrillator pulse generatorlocation, leadless pacemaker location, other implanted hardware (e.g.,right or left ventricular assist devices), external defibrillationelectrodes, surface ECG leads, surface mapping leads, a mapping vest,and other normal and pathophysiologic feature distributions within theheart, action potential dynamics for the heart, sets of conductivitiesfor the heart, arrhythmia source locations within the heart, and so on.

In some embodiments, a method performed by a computing system forpresenting weights for a simulated anatomy of a body part is provided.The method accesses seed anatomies of the body part. Each seed anatomyhas a seed value for each of a plurality of anatomical parameters of thebody part. For each of a plurality of seed anatomies of the body part,the method displays a seed representation of the body part based on seedvalues of anatomical parameters of that seed anatomy. The methodaccesses a set of weights that includes a weight for each seed anatomy.The method displays a simulated representation of the body part based ona simulated value for each anatomical parameter by, for each anatomicalparameter, combining the seed values of the seed anatomies of thatanatomical parameter, factoring in the weights of the seed anatomies. Insome embodiments, the seed representations are displayed in a circulararrangement with the simulated representation displayed within thecircular arrangement. In some embodiments, the method further displays,in association with each displayed seed representation for a seedanatomy, an indication of the weight associated with that seed anatomy.In some embodiments, the method further displays a line between eachdisplayed seed representation and the displayed simulatedrepresentation, wherein the displayed indication of the weight for aseed anatomy is displayed in association with the displayed line betweenthe displayed seed representation for that seed anatomy and thedisplayed simulated representation. In some embodiments, the methodfurther provides a user interface element for specifying the weight foreach seed anatomy. In some embodiments, the method provides a userinterface element for specifying a plurality of sets of weights, witheach set including a weight for each seed anatomy. In some embodiments,the plurality of sets of weights are specified by providing a range ofweights and an increment. In some embodiments, the body part is a heart.In some embodiments, the body part is a lung. In some embodiments, thebody part is a torso surface.

In some embodiments, a computing system for presenting a simulatedanatomy of a body part is provided. The computing system comprises oneor more computer-readable storage mediums storing computer-executableinstructions and one or more processors for executing thecomputer-executable instructions stored in the one or morecomputer-readable storage mediums. The instructions control thecomputing system to, for each of a plurality of seed anatomies of thebody part, display a seed representation of the body part based on seedvalues of anatomical parameters of that seed anatomy; and display asimulated representation of the body part based on a simulated anatomywith simulated values for anatomical parameters derived from a weightedcombination of the seed values of the seed anatomies for the anatomicalparameters. In some embodiments, the computer-executable instructionsfurther control the computing system to generate the simulated anatomyby, for each anatomical parameter, generating a simulated value for thatanatomical parameter by combining the seed values of the seed anatomiesof that anatomical parameter, factoring in weights of the seedanatomies. In some embodiments, the seed representations are displayedin a circular arrangement with the simulated representation displayedwithin the circular arrangement. In some embodiments, thecomputer-executable instructions further control the computing system todisplay, in association with each displayed seed representation for aseed anatomy, an indication of a weight associated with that seedanatomy. In some embodiments, the computer-executable instructionsfurther control the computing system to provide a user interface forspecifying a plurality of sets of weights, with each set including aweight for each seed anatomy. In some embodiments, the plurality of setsof weights are specified by a range of weights and an increment.

In some embodiments, a method performed by a computing system forpresenting a simulated anatomy of a heart is provided. For each of aplurality of seed anatomies of the heart, the method displays a seedrepresentation of the heart based on seed values of anatomicalparameters of that seed anatomy. The method displays a simulatedrepresentation of the heart based on a simulated anatomy derived, foreach anatomical parameter, from a simulated value for that anatomicalparameter generated from a weighted combination of the seed values ofthe seed anatomies for that anatomical parameter. In some embodiments,the seed representations are displayed in a circular arrangement withthe simulated representation displayed within the circular (e.g.,bullseye) arrangement. In some embodiments, the method further displays,in association with each displayed seed representation for a seedanatomy, an indication of a weight associated with that seed anatomy.

In some embodiments, a method performed by a computing system forconverting a first polyhedral model to a second polyhedral model isprovided. The first polyhedral model has a first polyhedral mesh with avolume containing first polyhedrons. Each vertex of the firstpolyhedrons has a model parameter. The method generates a representationof the surface of the first polyhedral model from the first polyhedrons.The method generates a second polyhedral mesh for the second polyhedralmodel by populating the volume with the surface with second polyhedronsthat are different from the first polyhedrons. For each of a pluralityof vertices of the second polyhedrons of the second polyhedral mesh, themethod interpolates a model parameter for that vertex based on theparameters of vertices of the first polyhedrons that are proximate tothat vertex. In some embodiments, the first polyhedrons are hexahedronsand the second polyhedrons are tetrahedrons. In some embodiments, thepolyhedral meshes represent a body part. In some embodiments, the bodypart is a heart. In some embodiments, the first polyhedral mesh has anorigin and further comprises, prior to interpolating the modelparameters, mapping the second polyhedral mesh to the same origin. Insome embodiments, each vertex of the first polyhedrons has multipleparameters and interpolates each model parameter. In some embodiments,the first polyhedral model and the second polyhedral model representcomputational models of an electromagnetic source within a body, and themethod further generates a modeled electromagnetic output of theelectromagnetic source based on the second polyhedral model using aproblem solver adapted to operate on meshes with second polyhedrons. Insome embodiments, the electromagnetic source is a heart, and the methodfurther generates a vectorcardiogram from the modeled electromagneticoutput. In some embodiments, the first polyhedral model and the secondpolyhedral model are geometric models (e.g., of cardiac or torsoanatomy). In some embodiments, the first polyhedral model and the secondpolyhedral model represent models of an electromagnetic source within abody, and the method further converts a plurality of first polyhedralmodels representing different source configurations. In someembodiments, the electromagnetic source is a heart and a sourceconfiguration specifies one or more of a fiber architecture, torsoanatomy, normal and abnormal cardiac anatomy, normal and abnormalcardiac tissue, scar, fibrosis, inflammation, edema, accessory pathways,congenital heart disease, malignancy, sites of prior ablation, sites ofprior surgery, sites of external radiation therapy, pacing leads,implantable cardioverter-defibrillator leads, cardiac resynchronizationtherapy leads, pacemaker pulse generator location, implantablecardioverter-defibrillator pulse generator location, subcutaneousdefibrillator lead location, subcutaneous defibrillator pulse generatorlocation, leadless pacemaker location, other implanted hardware (e.g.,right or left ventricular assist devices), external defibrillationelectrodes, surface ECG leads, surface mapping leads, a mapping vest,and other normal and pathophysiologic feature distributions within theheart, action potential dynamics, conductivities, arrhythmia sourcelocation or locations, and so on.

In some embodiments, a computing system for converting a firstpolyhedral model of a body part to a second polyhedral model of the bodypart is provided. The computing system comprises one or morecomputer-readable storage mediums storing computer-executableinstructions and one or more processors for executing thecomputer-executable instructions stored in the one or morecomputer-readable storage mediums. The instructions for controlling thecomputing system to generate a representation of the surface of thefirst polyhedral model. The first polyhedral model has a firstpolyhedral mesh based on a first polyhedron. The instructions controlthe computing system to generate a second polyhedral mesh for the secondpolyhedral model by populating the volume with the surface based on asecond polyhedron that is different from the first polyhedron. Theinstructions control the computing system to, for each of a plurality ofvertices of second polyhedrons of the second polyhedral mesh,interpolate a model parameter for that vertex based on the parameters ofvertices of first polyhedrons of the first polyhedral mesh that areproximate to that vertex. In some embodiments, the first polyhedron is ahexahedron and the second polyhedron is a tetrahedron. In someembodiments, the first polyhedral mesh has an origin wherein thecomputer-executable instructions further control the computing systemto, prior to interpolating the model parameters, map the secondpolyhedral mesh to the same origin. In some embodiments, the firstpolyhedral model and the second polyhedral model represent computationalmodels of the heart and the computer-executable instructions furthercontrol the computing system to generate a modeled electromagneticoutput of the electromagnetic heart based on the second polyhedral modelusing a problem solver adapted to operate on meshes with secondpolyhedrons. In some embodiments, the computer-executable instructionsfurther control the computing system to generate a vectorcardiogram fromthe modeled electromagnetic output. In some embodiments, the firstpolyhedral model and the second polyhedral model are geometric models(e.g., of cardiac or torso anatomy).

In some embodiments, a method performed by a computing system forconverting a first polyhedral model to a second model is provided. Thefirst polyhedral model has a first polyhedral mesh with a volumecontaining first polyhedrons. Each vertex of the first polyhedrons has amodel parameter. The method generates a representation of the surface ofthe first polyhedral model from the first polyhedrons. For each of aplurality of points of a second model, the method interpolates a modelparameter for that point based on the parameters of vertices of thefirst polyhedrons that are considered proximate to that vertex. In someembodiments, the second model is a second polyhedral model and thepoints are vertices of the second polyhedral model. In some embodiments,the second model is represented by regularly spaced grid points and thepoints are grid points.

In some embodiments, a method performed by a computing device forgenerating derived electromagnetic data for an electromagnetic sourcewithin a body is provided. The method accesses modeled electromagneticoutput for a first model of the electromagnetic source over time. Thefirst model is based on a first source configuration specifying a firstanatomy. The modeled electromagnetic output is generated using acomputational model of the electromagnetic source. The computationalmodel is for generating modeled electromagnetic output of theelectromagnetic source over time based on a model based on a sourceconfiguration. The method accesses a second model of the electromagneticsource based on a second source configuration specifying a secondanatomy. The method generates derived electromagnetic data for thesecond model of the electromagnetic source based on the modeledelectromagnetic output for the first model of the electromagneticsource, factoring in differences between the first anatomy and thesecond anatomy. In some embodiments, the electromagnetic source is aheart and the derived electromagnetic data is a cardiogram. In someembodiments, the cardiogram is a vectorcardiogram. In some embodiments,the cardiogram is an electrocardiogram. In some embodiments, the modeledelectromagnetic output for a model includes, for each of a plurality oftime intervals, an electromagnetic mesh with a modeled electromagneticvalue for each of a plurality of vertices of the electromagnetic mesh.In some embodiments, the modeled electromagnetic output is a collectionof voltage solutions.

In some embodiments, a computing system for generating a cardiogram fora heart is provided. The computing system comprises one or morecomputer-readable storage mediums storing a modeled electromagneticoutput for a first arrhythmia model of the heart over time. The firstarrhythmia model is based on a first anatomy. The modeledelectromagnetic output is generated using a computational model of aheart, the computational model for generating modeled electromagneticoutput of the heart over time based on an arrhythmia model. The one ormore computer-readable storage mediums store a second arrhythmia modelbased on a second anatomy. The one or more computer-readable storagemediums store computer-executable instructions for controlling thecomputing system to generate a cardiogram for the second arrhythmiamodel based on the modeled electromagnetic output for the firstarrhythmia model, factoring in differences between the first anatomy andthe second anatomy. The computing system comprising one or moreprocessors for executing the computer-executable instructions is storedin the one or more computer-readable storage mediums. In someembodiments, the cardiogram is a vectorcardiogram. In some embodiments,the cardiogram is an electrocardiogram. In some embodiments, the modeledelectromagnetic output for an arrhythmia model includes, for each of aplurality of time intervals, an electromagnetic mesh with a modeledelectromagnetic value for each of a plurality of vertices of theelectromagnetic mesh. In some embodiments, the modeled electromagneticoutput is a collection of voltage solutions.

In some embodiments, a method performed by a computing system forbootstrapping the generating of modeled electromagnetic output of anelectromagnetic source within a body is provided. The method accessesfirst modeled electromagnetic output for a first model with a firstsource configuration of the electromagnetic source at first simulationintervals. The first modeled electromagnetic output is generated using acomputational model of the electromagnetic source. The methodinitializes second modeled electromagnetic output for a second modelwith a second source configuration of the electromagnetic source to afirst modeled electromagnetic output for one of the first simulationintervals. For each of a plurality of second simulation intervals, themethod generates, using the computational model, second modeledelectromagnetic output for the second model of the electromagneticsource based on the initialized second modeled electromagnetic output.In some embodiments, the electromagnetic source is a heart and thesecond source configuration is different from the first sourceconfiguration based on scar or fibrosis or pro-arrhythmic substratelocation within the heart. In some embodiments, the electromagneticsource is a heart and the first model and the second model arearrhythmia models. In some embodiments, the modeled electromagneticoutput for a model includes, for each of a plurality of time intervals,an electromagnetic mesh with a modeled electromagnetic value for each ofa plurality of vertices of the electromagnetic mesh. In someembodiments, the method further generates, for each of a plurality ofthe first simulation intervals, the first modeled electromagnetic outputfor the first model, using the computational model. In some embodiments,the method initializes the second modeled electromagnetic output to thefirst modeled electromagnetic output for a first simulation intervalafter the first modeled electromagnetic output for the first simulationintervals has stabilized. In some embodiments, the electromagneticsource is a heart and the first modeled electromagnetic output hasstabilized into a rhythm.

In some embodiments, a computing system for bootstrapping the generatingof modeled electromagnetic output of a heart is provided. The computingsystem comprises one or more computer-readable storage mediums storing afirst modeled electromagnetic output for a first arrhythmia model of theheart at first simulation intervals, the first modeled electromagneticoutput generated using a computational model of a heart. The one or morecomputer-readable storage mediums also store computer-executableinstructions for controlling the computing system to initialize secondmodeled electromagnetic output for a second arrhythmia model of theheart to a first modeled electromagnetic output for one of the firstsimulation intervals; and simulate, using the computational model,second modeled electromagnetic output for the second arrhythmia modelbased on the initialized second modeled electromagnetic output. Thecomputing system also comprises one or more processors for executing thecomputer-executable instructions stored in the one or morecomputer-readable storage mediums. In some embodiments, the firstarrhythmia model and the second arrhythmia model are based on differentscar or fibrosis or pro-arrhythmic substrate locations within the heart.In some embodiments, the modeled electromagnetic output for anarrhythmia model includes, for each of a plurality of time intervals, anelectromagnetic mesh with a modeled electromagnetic value for each of aplurality of vertices of the electromagnetic mesh. In some embodiments,the computer-executable instructions further control the computingsystem to, for each of a plurality of the first simulation intervals,generate using the computational model the first modeled electromagneticoutput for the first arrhythmia model. In some embodiments, thecomputer-executable instructions control the computing system toinitialize the second modeled electromagnetic output to the firstmodeled electromagnetic output for a first simulation interval after thefirst modeled electromagnetic output for the first simulation intervalshas stabilized. In some embodiments, the first modeled electromagneticoutput has stabilized into a rhythm.

In some embodiments, a method performed by a computing system foridentifying derived electromagnetic data that matches electromagneticdata collected from a patient is provided. The electromagnetic datarepresents electromagnetic output from an electromagnetic source withina body. The method, for each of a plurality of model sourceconfigurations of the electromagnetic source, accesses a mapping of thatmodel source configuration to electromagnetic data that is derived basedon that model source configuration. The method accesses a patient sourceconfiguration representing a source configuration for theelectromagnetic source within the patient. The method identifies modelsource configurations that match the patient source configuration. Themethod identifies, from the derived electromagnetic data to which theidentified model source configurations are mapped, derivedelectromagnetic data that matches the patient electromagnetic data. Insome embodiments, the derived electromagnetic data is derived frommodeled electromagnetic output generated based on a model sourceconfiguration using a computational model of the electromagnetic source.In some embodiments, the modeled electromagnetic data for a model sourceconfiguration includes, for each of a plurality of time intervals, anelectromagnetic mesh with a modeled electromagnetic value for each of aplurality of locations of the electromagnetic source. In someembodiments, the method further, when an identified model sourceconfiguration has an anatomical parameter value that does not match thevalue of that anatomical parameter of the patient source configuration,generates adjusted derived electromagnetic data based on the modeledelectromagnetic output for that model source configuration anddifference in the value. In some embodiments, a source configurationincludes configuration parameters including anatomical parameters andelectrophysiology parameters. In some embodiments, the electromagneticsource is a heart and the configuration parameters include a scar orfibrosis or pro-arrhythmic substrate location within the heart, anaction potential for the heart, a conductivity for the heart, and anarrhythmia location. In some embodiments, the electromagnetic source isa heart and the anatomical parameters include dimensions of chambers ofthe heart, wall thicknesses of the heart, and orientation of the heart.In some embodiments, the electromagnetic source is a heart and derivedelectromagnetic data is a cardiogram. In some embodiments, a modelsource configuration includes a disorder parameter relating to anattribute of the electromagnetic source such that derivedelectromagnetic data for the model source configuration is based on thatattribute. In some embodiments, the electromagnetic source is a heartand the attribute is based on an arrhythmia. In some embodiments, theidentifying of derived electromagnetic data that matches the patientelectromagnetic data is based on a Pearson correlation coefficient, aroot-mean-squared error, and so on. In some embodiments, the identifyingof derived electromagnetic data that matches the patient electromagneticdata is based on root-mean-squared error. In some embodiments, a sourceconfiguration includes configuration parameters, the model sourceconfigurations include a value for each configuration parameter, and thepatient source configuration includes a value for only a proper subsetof the configuration parameters. In some embodiments, the derivedelectromagnetic data is based on a model orientation of theelectromagnetic source and further comprise, when a patient orientationof the electromagnetic source of the patient is different from the modelorientation, the identifying of the derived electromagnetic data factorsin the difference between the model orientation and the patientorientation. In some embodiments, the electromagnetic source is a heartand the electromagnetic data is a vectorcardiogram, and the identifyingof the derived electromagnetic data includes generating a rotationmatrix based on the difference between the model orientation and thepatient orientation and rotating a vectorcardiogram based on therotation matrix.

In some embodiments, a method performed by a computing system forgenerating a classification for a patient based on patientelectromagnetic data representing electromagnetic output of anelectromagnetic source within the patient is provided. The method, foreach of a plurality of clusters (e.g., groups) of model sourceconfigurations of the electromagnetic source, accesses a classifier forthat cluster that is trained based on the model source configurations ofthat cluster to generate a classification for derived electromagneticdata. The method accesses a patient source configuration representing asource configuration for the electromagnetic source within the patient.The method identifies a cluster whose model source configurationsmatches the patient source configuration. The method applies theclassifier for the identified cluster to the patient electromagneticdata to generate a classification for the patient. In some embodiments,the derived electromagnetic data is derived from modeled electromagneticoutput generated based on a model source configuration using acomputational model of the electromagnetic source. In some embodiments,a source configuration includes configuration parameters includinganatomical parameters and electrophysiology parameters. In someembodiments, the electromagnetic source is a heart and the configurationparameters include a scar or fibrosis or pro-arrhythmic substratelocation within the heart, an action potential for the heart, and aconductivity for the heart. In some embodiments, the electromagneticsource is a heart and the anatomical parameters include dimensions ofchambers of the heart and wall thicknesses of the heart. In someembodiments, the electromagnetic source is a heart and derivedelectromagnetic data is a cardiogram. In some embodiments, thecardiogram is a vectorcardiogram. In some embodiments, a model sourceconfiguration matches the patient source configuration based on a cosinesimilarity. In some embodiments, the method further generates clustersof model source configurations; and for each of the clusters, for eachof the model configuration sources of that cluster, generates asimulated electromagnetic output of the electromagnetic source based onthat model configuration source; and generates derived electromagneticdata for that model source configuration from the simulatedelectromagnetic output based on that model source configuration. In someembodiments, a source configuration includes configuration parameters,the model source configurations include a value for each configurationparameter, and the patient source configuration includes a value foronly a proper subset of the configuration parameters. In someembodiments, the derived electromagnetic data is based on a modelorientation of the electromagnetic source, and the method further, whena patient orientation of the electromagnetic source of the patient isdifferent from the model orientation, adjusts the patientelectromagnetic data based on the difference between the modelorientation and the patient orientation. In some embodiments, theelectromagnetic source is a heart and the classification is based onsource location of an arrhythmia.

In some embodiments, a computing system for identifying a modelcardiogram that matches a patient cardiogram collected from a patient isprovided. The computing system comprises one or more computer-readablestorage mediums storing: for each of a plurality of model sourceconfigurations of a heart, a modeled cardiogram for that model sourceconfiguration; a patient source configuration representing the patient'sheart; and computer-executable instructions that, when executed, controlthe computing system to: identify model source configurations that matchthe patient source configuration; and identify, from the modeledcardiograms for the identified model source configurations, thosemodeled cardiograms that match the patient cardiogram. The computingsystem includes one or more processors for executing thecomputer-executable instructions stored in the one or morecomputer-readable storage mediums. In some embodiments, a modeledcardiogram is generated from modeled electromagnetic output of a heartwith a model source configuration using a computational model of theheart. In some embodiments, a cardiogram is adjusted based ondifferences in values of an anatomical parameter for a model sourceconfiguration and the patient source configuration. In some embodiments,the model source configurations include a scar or fibrosis orpro-arrhythmic substrate location within the heart, an action potentialfor the heart, a conductivity for the heart, and an arrhythmia location.In some embodiments, the model source configurations include dimensionsof chambers of the heart, wall thicknesses of the heart, and orientationof the heart. In some embodiments, a source configuration includesconfiguration parameters, the model source configurations include avalue for each configuration parameter, and the patient sourceconfiguration includes a value for only a proper subset of theconfiguration parameters. In some embodiments, modeled cardiograms arebased on a model orientation of a heart and when a patient orientationof the heart is different from the model orientation, the identifying ofmodeled cardiogram factors in the difference between the modelorientation and the patient orientation.

In some embodiments, a method performed by one or more computing systemsfor generating a patient classifier for classifying electromagnetic dataderived from electromagnetic output of an electromagnetic source withina body is provided. The method accesses a model classifier forgenerating a classification for electromagnetic output of anelectromagnetic source. The model classifier has model classifierweights learned based on training data that includes modeled derivedelectromagnetic data and model classifications. The modeled derivedelectromagnetic data is derived from modeled electromagnetic outputgenerated using a computational model of the electromagnetic source thatmodels the electromagnetic output of the electromagnetic source overtime based on a source configuration. The method accesses patienttraining data that includes, for each of a plurality of patients,patient derived electromagnetic data and a patient classification forthat patient. The method initializes patient classifier weights of thepatient classifier based on the model classifier weights. The methodtrains the patient classifier with the patient training data and withthe initialized patient classifier weights. In some embodiments, theclassifier is a convolutional neural network. In some embodiments, theconvolutional neural network inputs a one-dimensional image. In someembodiments, the model classifier is trained using training data thatincludes modeled derived electromagnetic data derived from modeledelectromagnetic output generated based on source configurations that areidentified as being similar to source configurations of the patients. Insome embodiments, the electromagnetic source is a heart, a sourceconfiguration represents anatomical parameters and electrophysiologyparameters of the heart, the modeled electromagnetic output representsactivation of the heart, and the derived electromagnetic data is basedon body-surface measurements. In some embodiments, a electrophysiologyparameter is based on a heart disorder that is selected from a groupconsisting of but not limited to sinus rhythm, inappropriate sinustachycardia, ectopic atrial rhythm, junctional rhythm, ventricularescape rhythm, atrial fibrillation, ventricular fibrillation, focalatrial tachycardia, atrial microreentry, ventricular tachycardia, atrialflutter, premature ventricular complexes, premature atrial complexes,atrioventricular nodal reentrant tachycardia, atrioventricular reentranttachycardia, permanent junctional reciprocating tachycardia, andjunctional tachycardia. In some embodiments, the electromagnetic data isa cardiogram. In some embodiments, the classification is a sourcelocation. In some embodiments, the patient derived electromagnetic datafor a patient is derived from patient electromagnetic output of theelectromagnetic source of that patient. In some embodiments, the methodfurther receives target patient derived electromagnetic data for atarget patient and applies the patient classifier to the target patientderived electromagnetic data to generate a classification for the targetpatient.

In some embodiments, a method performed by one or more computing systemsfor classifying patient derived electromagnetic data for a targetpatient is provided. The patient derived electromagnetic data is derivedfrom patient electromagnetic output of an electromagnetic source withinthe patient's body. The method accesses a patient classifier to generatea classification for patient derived electromagnetic data of theelectromagnetic source. The classifier is trained using weights of amodel classifier and patient training data, the model classifier trainedusing modeled derived electromagnetic data and model classifications.The modeled derived electromagnetic data is generated from modeledelectromagnetic output. The modeled electromagnetic output is generatedfor a plurality of source configurations using a computational model ofthe electromagnetic source. The patient training data includes patientderived electromagnetic data and patient classifications. The methodreceives the patient derived electromagnetic data for the target patientand applies the patient classifier to the received patient derivedelectromagnetic data to generate a patient classification for the targetpatient. In some embodiments, the electromagnetic source is a heart, asource configuration represents anatomical parameters andelectrophysiology parameters of the heart, the modeled electromagneticoutput represents activation of the heart, and the derivedelectromagnetic data is based on body-surface measurements.

In some embodiments, a computing system for generating a patientclassifier for classifying a cardiogram is provided. The computingsystem comprises one or more computer-readable storage mediums storingcomputer-executable instructions and one or more processors forexecuting the computer-executable instructions stored in the one or morecomputer-readable storage mediums. The instructions control thecomputing system to initialize patient classifier weights of the patientclassifier to model classifier weights of a model classifier. The modelclassifier is trained based on modeled cardiograms generated based on acomputational model of the heart applied to model heart configurations.The instructions control the computing system to train the patientclassifier with the patient training data and with the initializedpatient classifier weights, the patient training data including, foreach of a plurality of patients, a patient cardiogram and a patientclassification for that patient. In some embodiments, the modelclassifier and the patient classifier are convolutional neural networks.In some embodiments, the convolutional neural networks input aone-dimensional image. In some embodiments, the model classifier and thepatient classifier are neural networks. In some embodiments, the modelclassifier is trained using modeled cardiograms generated based on modelheart configurations that are similar to patient heart configurations ofthe patients. In some embodiments, the computer-executable instructionsfurther control the computing system to, for each of a plurality ofclusters of similar patients, train a cluster patient classifier basedon patient training data that includes cardiograms and patientclassifications for the patients in that cluster. In some embodiments,the computer-executable instructions further control the computingsystem to identify similar patients based on comparison of patient heartconfigurations of the patients. In some embodiments, thecomputer-executable instructions further control the computing system toidentify similar patients based on comparison of cardiograms of thepatients. In some embodiments, the computer-executable instructionsfurther control the computing system to identify a cluster of similarpatients that are similar to a target patient and apply the clusterpatient classifier for that identified cluster to a target patientcardiogram of the target patient to generate a target patientclassification for the target patient.

In some embodiments, a method performed by a computing system forgenerating a classification for a target patient based on a targetcardiogram of the target patient is provided. The method generates apatient classifier based on patient training data that includescardiograms of patients and based on a transference from a modelclassifier generated based on model training data that includes modeledcardiograms. The modeled cardiograms are generated based on acomputational model of the heart and model heart configurations. Themethod applies the patient classifier to the target cardiogram togenerate a target classification for the target patient.

In some embodiments, a method performed by one or more computing systemsfor generating a patient-specific model classifier for classifyingderived electromagnetic data derived from electromagnetic output of anelectromagnetic source within a body is provided. The method identifiesmodels that are similar to a target patient. For each model that isidentified, the method applies a computational model of theelectromagnetic source to generate modeled electromagnetic output of theelectromagnetic source based on model source configuration for thatmodel; derives modeled derived electromagnetic data from the generatedmodeled electromagnetic output for that model; and generates a label forthat model. The method trains the patient-specific model classifier withthe modeled derived electromagnetic data and the generated labels astraining data. In some embodiments, the classifier is a convolutionalneural network that inputs a one-dimensional image. In some embodiments,the similarity between a model and the target patient is based on sourceconfigurations. In some embodiments, the similarity between a model andthe target patient is based on derived electromagnetic data. In someembodiments, the electromagnetic source is a heart, a sourceconfiguration represents anatomical parameters and electrophysiologyparameters of the heart, the modeled electromagnetic output representsactivation of the heart, and the derived electromagnetic data is basedon body-surface measurements. In some embodiments, the electromagneticdata is a cardiogram. In some embodiments, the label represents a sourcelocation for a disorder of the electromagnetic source. In someembodiments, the training is based on a transference from a modelclassifier generated based on model training data that includes modeledderived electromagnetic data, the modeled derived electromagnetic datagenerated based on a computational model of the electromagnetic sourceand model source configurations. In some embodiments, the methodfurther, for each of a plurality of clusters of similar target patients,trains a cluster-specific model classifier based on derivedelectromagnetic data for models that are similar to the target patientsof that cluster. In some embodiments, the method further identifies acluster whose target patients are similar to another target patient andapplies the cluster-specific model classifier for that identifiedcluster to the target patient derived electromagnetic data of the othertarget patient to generate a target patient label for the other targetpatient. In some embodiments, the method further identifies the clusterof target patients based on comparison of patient source configurationsof target patients. In some embodiments, the method further identifiesthe cluster of target patients based on comparison of patient derivedelectromagnetic data of the target patients.

In some embodiments, a computing system for generating apatient-specific model classifier for classifying a cardiogram of atarget patient is provided. The computing system comprises one or morecomputer-readable storage mediums storing computer-executableinstructions and one or more processors for executing thecomputer-executable instructions stored in the one or morecomputer-readable storage mediums. The instructions control thecomputing system to identify models that are similar to the targetpatient; and train the patient-specific model classifier based ontraining data that includes modeled cardiograms and modelclassifications of the identified models. The modeled cardiograms aregenerated using a computational model of the heart based on model heartconfigurations of the identified models. In some embodiments, the modelclassifications represent a source location for a heart disorder. Insome embodiments, the training of the patient-specific model classifieris based on a transference from a model classifier generated based onmodel training data that includes modeled cardiograms. In someembodiments, the computer-executable instructions further control thecomputer system to, for each of a plurality of clusters of similartarget patients, train a cluster-specific model classifier based ontraining data that includes modeled cardiograms and model classificationof models that are similar to the target patients of that cluster. Insome embodiments, the computer-executable instructions further controlthe computer system to identify a cluster whose target patients aresimilar to another target patient and apply the cluster-specific modelclassifier for that identified cluster to a target patient cardiogram ofthe other target patient to generate a target patient classification forthe other target patient. In some embodiments, the computer-executableinstructions control the computer system to identify the clusters ofsimilar target patients based on comparison of patient heartconfigurations of target patients. In some embodiments, thecomputer-executable instructions control the computer system to identifythe clusters of similar target patients based on comparison of patientcardiograms of the target patients.

In some embodiments, a method performed by a computing system forgenerating a representation of an electromagnetic source is provided.The method identifies modeled derived electromagnetic data that matchespatient derived electromagnetic data of a patient. The modeled derivedelectromagnetic data is derived from modeled electromagnetic output ofthe electromagnetic source generated using a computational model of theelectromagnetic source. The modeled electromagnetic output has, for eachof a plurality of time intervals, an electromagnetic value for locationsof the electromagnetic source. The method identifies the cycle withinthe modeled electromagnetic output from which the matching model derivedelectromagnetic data was derived. For each of a plurality of displaylocations of the electromagnetic source, the method generates a displayelectromagnetic value for that display location based on theelectromagnetic values of the modeled electromagnetic output of theidentified cycle. The method generates a display representation of theelectromagnetic source that includes, for each of the plurality ofdisplay locations, a visual representation of the displayelectromagnetic value for that display location. In some embodiments,the display representation has geometry based on anatomical parametersof the electromagnetic source of the patient. In some embodiments, thevisual representation of a display electromagnetic value is a shadingbased on magnitude of the display electromagnetic value. In someembodiments, the visual representation of a display electromagneticvalue is a color selected based on magnitude of the displayelectromagnetic value. In some embodiments, the visual representation ofa display electromagnetic value is an intensity of a color based onmagnitude of the display electromagnetic value. In some embodiments, thedisplay electromagnetic value is based on a difference between theelectromagnetic value at the start of the cycle and the electromagneticvalue at the end of the cycle. In some embodiments, the method further,for each of a plurality of display intervals of the identified cycle,generates and outputs a display representation for that displayinterval. In some embodiments, the display representations are output insequence to illustrate activations of the electromagnetic source overtime. In some embodiments, when multiple instances of derivedelectromagnetic data match the patient derived electromagnetic data, thegenerating of the display electromagnetic value for a display locationis based on a combination of the electromagnetic values of the modeledelectromagnetic output from which the matching instances of the modeledderived electromagnetic data were derived. In some embodiments, thecombination is an average that is weighted based on closeness of thematch. In some embodiments, the electromagnetic source is a heart.

In some embodiments, a method performed by a computing system forgenerating a representation of a heart is provided. The methodidentifies a modeled cardiogram that is similar to a cardiogram of apatient. For each of a plurality of display locations of the heart, themethod generates a display electromagnetic value for that displaylocation based on an electromagnetic value of modeled electromagneticoutput of a heart from which the modeled cardiogram is derived. Themodeled electromagnetic output is generated using a computational modelof the heart. The method generates a display representation of the heartthat includes, for each of the plurality of display locations, a visualrepresentation of the display electromagnetic value for that displaylocation. In some embodiments, the display representation has geometrybased on anatomical parameters of the heart of the patient. In someembodiments, the visual representation of a display electromagneticvalue is an intensity of a color based on magnitude of the displayelectromagnetic value. In some embodiments, the displayedelectromagnetic value is based on a difference between theelectromagnetic value at the start of a model cycle within the modeledelectromagnetic output and the electromagnetic value at the end of themodel cycle. In some embodiments, the model cycle is selected based onsimilarity to a patient cycle within the cardiogram. In someembodiments, the method further, for each of a plurality of displayintervals of the modeled electromagnetic output, generates and outputs adisplay representation for that display interval. In some embodiments,the display representations are output in sequence to illustrateactivations of the electromagnetic source over time.

In some embodiments, a computing system for displaying a representationof electrical activation of a heart of a patient is provided. Thecomputing system comprises one or more computer-readable storage mediumsstoring computer-executable instructions and one or more processors forexecuting the computer-executable instructions stored in the one or morecomputer-readable storage mediums. The instructions control thecomputing system to identify a modeled cardiogram that is similar to acardiogram of the patient. The instructions control the computing systemto generate a display representation of the heart that includes, foreach of a plurality of display locations of the heart, a visualrepresentation of a display value for that display location. The displayvalues are based on modeled electromagnetic output of a heart from whichthe modeled cardiogram is derived. The modeled electromagnetic output isgenerated using a computational model of the heart. The instructionscontrol the computing system to display the display representation. Insome embodiments, the display representation has geometry based onanatomical parameters of the heart of the patient.

In some embodiments, a method performed by a computing system forgenerating a surface representation of an electromagnetic forcegenerated by an electromagnetic source within a body is provided. Themethod accesses a sequence of vectors representing magnitude anddirection of the electromagnetic force over time. The vectors arerelative to an origin. For each pair of adjacent vectors, the methodidentifies a region based on the origin and the pair of vectors;generates a region representation of the region; and displays thegenerated region representation of the region. In some embodiments, themethod displays a representation of the electromagnetic source so thatthe displayed region representations visually emanate from theelectromagnetic source. In some embodiments, the origin is within theelectromagnetic source. In some embodiments, the electromagnetic sourceis a heart and the sequence of vectors is a vectorcardiogram. In someembodiments, the electromagnetic force has cycles and the regionrepresentations for a cycle form the surface representation for thatcycle, and the method further simultaneously displays surfacerepresentations for multiple cycles. In some embodiments, the generatedregion representations are displayed in sequence to illustrate changesin the electromagnetic force over time.

In some embodiments, a computing system for displaying a representationof vectorcardiogram is provided. The computing system comprises one ormore computer-readable storage mediums storing computer-executableinstructions and one or more processors for executing thecomputer-executable instructions stored in the one or morecomputer-readable storage mediums. The instructions control thecomputing system to generate a surface representation of a portion ofthe vectorcardiogram where the surface representation is bounded bypoints representing x, y, and z values of vectors of the portion of thevectorcardiogram; and display the generated surface representation. Insome embodiments, the computer-executable instructions further controlthe computing system to display a representation of the heart from whichthe vectorcardiogram is derived so that the displayed surfacerepresentation visually emanates from the displayed representation ofthe heart. In some embodiments, the vectors are relative to an originthat is within the heart. In some embodiments, the vectorcardiogram hascycles and the computer-executable instructions further control thecomputing system to simultaneously display the surface representationsfor multiple cycles. In some embodiments, the generated surfacerepresentation is incrementally displayed to illustrate changes in thevectorcardiogram over time. In some embodiments, the surfacerepresentation is displayed on a region-by-region basis.

In some embodiments, a method performed by a computing system isprovided for identifying simulated cardiograms that are similar to apatient cardiogram. The simulated cardiograms are generated based onsimulated pacings and the patient cardiogram is generated based on apatient pacing of a patient. The method identifies first simulatedcardiograms whose simulated pacings are similar to the patient pacing.The method identifies, from the first simulated cardiograms, secondsimulated cardiograms generated based on a simulated heart with asimulation orientation that is similar to a patient orientation of thepatient's heart. The method identifies, from the second simulatedcardiograms, third simulated cardiograms that represent actionpotentials that are similar to the action potential represented by thepatient cardiogram. The method identifies, from the third simulatedcardiograms, calibrated simulated cardiograms that represent conductionvelocities that are similar to the conduction velocity represented bythe patient cardiogram. In some embodiments, the method labels eachcalibrated simulated cardiogram with a configuration parameter used whengenerating that calibrated simulated cardiogram. The method trainstraining a classifier with the calibrated simulated cardiograms and thelabels as training data. In some embodiments, the method applies thetrained classifier to the patient cardiogram to identify theconfiguration parameter for the patient. In some embodiments, thecardiogram is an electrocardiogram. In some embodiments, the cardiogramis a vectorcardiogram. In some embodiments, a pacing includes a pacinglocation and a pacing rate. In some embodiments, the similarity ofaction potentials is based on cardiograms that are normalized inmagnitude and in duration. In some embodiments, the similarity ofconduction velocities is based on cardiograms that are normalized inmagnitude. In some embodiments, the simulated cardiograms are identifiedfrom a collection of simulated cardiograms generated based on asimulated structural disease similar to a patient structural disease ofthe patient. In some embodiments, the simulated cardiograms areidentified from a collection of simulated cardiograms based on thesimilarity of cardiac geometry of a simulated cardiogram to patientcardiac geometry of the patient. In some embodiments, the similarity oforientations is based on simulated cardiac vectors that are similar topatient cardiac vectors of the patient, the cardiac vectors for cardiaccycle phases at cardiac locations. In some embodiments, the simulatedcardiograms are identified from a collection of simulated cardiogramsgenerated based on a simulated disease substrate similar to a patientdisease substrate of the patient.

In some embodiments, a method performed by a computing system isprovided for identifying simulated cardiograms that are similar to apatient cardiogram. The method determines morphological similarity ofsimulated cardiograms to the patient cardiogram based on morphology. Themethod identifies similar simulated cardiograms based on morphologicalsimilarity. In some embodiments, the determining of morphologicalsimilarity includes determining orientation similarity of simulatedcardiograms to the patient cardiogram based on orientation anddetermining electrophysiological similarity of simulated cardiograms tothe patient cardiogram. In some embodiments, the method determinespacing similarity of simulated cardiograms to the patient cardiogramwherein the identifying is further based on pacing similarity. In someembodiments, the electrophysiological similarity is based on actionpotential similarity and conduction velocity similarity. In someembodiments, the method trains a classifier using training data thatincludes the identified similar simulated cardiograms labeled with aconfiguration parameter. In some embodiments, the method determinescardiac geometry similarity of simulated cardiograms to the patientcardiogram wherein the identifying is further based on cardiac geometrysimilarity. In some embodiments, the cardiac geometry similarity isbased on structural disease similarity and measurement similarity. Insome embodiments, the method determines disease substrate similarity ofsimulated cardiograms to the patient cardiogram wherein the identifyingis further based on disease substrate similarity.

In some embodiments, one or more computing systems is provided foridentifying simulated cardiograms that are similar to a patientcardiogram. The one or more computing systems includes one or morecomputer-readable storage mediums for storing computer-executableinstructions and one or more processors for executing thecomputer-executable instructions stored in the one or morecomputer-readable storage mediums. The instructions control the one ormore computing systems to determine orientation similarity of simulatedcardiograms to the patient cardiogram based on orientation, determineelectrophysiological similarity of simulated cardiograms to the patientcardiogram, and identify similar simulated cardiograms based onorientation similarity and electrophysiological similarity. In someembodiments, the computer-executable instructions further control theone or more computing systems to determine disease substrate similarityof the simulated cardiograms to the patient cardiogram and to identifysimilar simulated cardiograms is further based on disease substratesimilarity. In some embodiments, the computer-executable instructionsfurther control the one or more computing systems to determine pacingsimilarity of the simulated cardiograms to the patient cardiogram andidentify similar simulated cardiograms is further based on pacingsimilarity. In some embodiments, the electrophysiological similarity isbased on action potential similarity and conduction velocity similarity.In some embodiments, the action potential similarity is based oncardiograms that are normalized in magnitude and in duration, and theconduction velocity similarity is based on cardiograms that arenormalized in magnitude. In some embodiments, the computer-executableinstructions further control the one or more computing systems to traina classifier using training data that includes the identified similarsimulated cardiograms labeled with a configuration parameter.

In some embodiments, a method performed by a computing system isprovided for mapping simulated cardiograms to patient cardiograms of apatient. The method identifies simulated cardiograms that match thepatient cardiograms based on configuration parameters and pacinglocations. The method trains a mapping function to map the identifiedsimulated cardiograms to the patient cardiograms. The method applies thetrained mapping function to simulated cardiograms to generatetransformed simulated cardiograms. In some embodiments, the methodtrains a patient-specific model classifier based on the transformedsimulated cardiograms.

In some embodiments, a method performed by one or more computing systemsis provided for calibrating the orientation of a simulatedvectorcardiogram (“VCG”) to a patient VCG. The method displays arepresentation of the simulated VCG and representation of the patientVCG. The method receives from a user an indication to rotate one of thedisplayed representations. The method receives from the user anindication that the rotated representation and the other representationare aligned. The method generates a transformation matrix based onrotation of the rotated representation. In some embodiments, therepresentations displayed within a torso. In some embodiments, arepresentation of the simulated VCG is displayed with a representationof a heart based on cardiac geometry associated with the simulated VCG.

In some embodiments, a method performed by a computing system isprovided for identifying simulated electromagnetic outputs of anelectromagnetic source that are similar to a patient electromagneticoutput of an electromagnetic source of a patient. The simulatedelectromagnetic outputs are generated based on simulated pacings of theelectromagnetic source. The patient electromagnetic output is generatedbased on a patient pacing of the electromagnetic source of the patient.The method identifies pacing-similar simulated electromagnetic outputswhose simulated pacings are similar to the patient pacing. The methodidentifies configuration-similar simulated electromagnetic outputsgenerated based on a simulated electromagnetic source with a simulationconfiguration parameter that is similar to a patient configurationparameter of the electromagnetic source of the patient. The methodidentifies action-potential-similar simulated electromagnetic outputsthat represent action potentials that are similar to the actionpotential represented by the patient electromagnetic source. The methodidentifies, from the identified pacing-similar, configuration-similar,and action-potential-similar simulated cardiograms, calibrated simulatedelectromagnetic outputs that represent conduction velocities that aresimilar to the conduction velocity represented by the patientelectromagnetic output. In some embodiments, the patient pacing isperformed using an invasive pacing device that administerselectromagnetic pulses from inside the electromagnetic source. In someembodiments, the invasive pacing device is a catheter. In someembodiments, the patient pacing is performed using a non-invasive pacingdevice that administers electromagnetic pulses from outside theelectromagnetic source. In some embodiments, the non-invasive pacingdevice generates an electromagnetic field to pace the electromagneticsource of the patient. In some embodiments, the non-invasive pacingdevice is a magnetic resonance scanner. In some embodiments, theidentified calibrated simulated electromagnetic outputs arepacing-similar, configuration-similar, and action-potential-similarelectromagnetic outputs.

A method performed by one or more computing systems for identifying apotential ablation pattern for an EM source of a patient is provided.The method accesses a patient EM output of the EM source. The methodidentifies non-ablation pattern information of a non-ablation patternsimulation. The non-ablation pattern information is identified based onsimilarity of simulated EM output of the non-ablation pattern simulationto the patient EM output. The method identifies an ablation patternbased on similarity of non-ablation pattern information to ablationpattern information associated with an ablation pattern simulation. Themethod outputs an indication of the identified ablation pattern as thepotential ablation pattern for the EM source of the patient. In someembodiments, the EM source is a heart and the potential ablation patternis for treating an arrhythmia of the patient. In some embodiments, thesimilarity is based on a mapping of mapping information associated withthe non-ablation pattern simulation to the identified ablation pattern.In some embodiments, the mapping information includes the simulated EMoutput. In some embodiments, the mapping is a direct mapping. In someembodiments, the mapping is an indirect mapping. In some embodiments,the non-ablation pattern information includes a non-ablation patternsource configuration of the non-ablation pattern simulation and theablation pattern information includes an ablation pattern sourceconfiguration of the ablation pattern simulation. In some embodiments,the indication of the identified ablation pattern is output to anablation device. In some embodiments, the ablation device is astereotactic body radiation therapy device. In some embodiments, theindication of the identified ablation pattern is displayed. In someembodiments, the identified ablation pattern is superimposed on an imageof the EM source. In some embodiments, the image is based on ananatomical parameter collected as part of an ablation procedure. In someembodiments, the method further identifies the non-ablation patternsimulation from a calibrated collection of simulations.

In some embodiments, a method performed by one or more computing systemsis provided for generating a mapping function to map patient informationof a patient to an ablation pattern for treating arrhythmia of thepatient. The method accesses ablation pattern simulations. Each ablationpattern simulation is generated based on a simulated sourceconfiguration and an ablation pattern. The simulated sourceconfiguration includes a simulated source location. For each ablationpattern simulation, the method generates a simulated feature vector thatincludes features based on the simulated source configuration but notbased on the simulated source location and a feature based on asimulated cardiogram generated from a non-ablation pattern simulationbased on the simulated source configuration but not based on an ablationpattern, and further labels the simulated feature vector with thesimulated source location and the ablation pattern of that ablationpattern simulation. The method trains a classifier using the featurevectors and labels as training data. In some embodiments, the methodfurther generates a patient feature vector with features based on apatient source configuration of the patient but not based on a sourcelocation and a feature based on a patient cardiogram of the patient, andfurther applies the classifier to the patient feature vector to identifya source location and an ablation pattern for treating the patient. Insome embodiments, the method further outputs an indication of theidentified source location and the identified ablation pattern fortreating the patient. In some embodiments, the patient is treated usingstereotactic body radiation therapy.

In some embodiments, one or more computing systems is provided foridentifying an ablation pattern for a heart of a patient. The one ormore computing systems comprise one or more computer-readable storagemediums storing computer-executable instructions and one or moreprocessors for executing the computer-executable instructions stored inthe one or more computer-readable storage mediums. The instructions,when executed control the one or more computing systems to, identify asimulated cardiogram generated from a non-ablation pattern simulation ofa model library of non-ablation pattern simulations. Each non-ablationpattern simulation is generated based on a computational model of theheart and a heart configuration that includes a simulated sourcelocation. The instructions, when executed control the one or morecomputing systems to, identify an ablation pattern and a simulatedsource location associated with the simulated cardiogram, the ablationpattern associated with an ablation pattern simulation generated basedon a computational model of the heart, based on a heart configurationthat includes a source location, and based on the identified ablationpattern, the identified ablation pattern identified based on a mappingof the identified simulated cardiogram to the identified ablationpattern. The instructions, when executed control the one or morecomputing systems to, direct an ablation therapy for the patient basedon the identified simulated source location and the identified ablationpattern. In some embodiments, the ablation therapy is for treating anarrhythmia. In some embodiments, the computer-executable instructions todirect an ablation therapy output to an ablation device an indication ofthe identified simulated source location and the identified ablationpattern. In some embodiments, the ablation device is a stereotactic bodyradiation therapy device. In some embodiments, the ablation device is aneuromodulation device. In some embodiments, the computer-executableinstructions to direct an ablation therapy display an indication of theidentified simulated source location of the heart configuration and theidentified ablation pattern. In some embodiments, thecomputer-executable instructions to identify an ablation patternidentify multiple ablation patterns and the instructions to direct anablation therapy output an indication of the identified simulated sourcelocation and the identified ablation patterns. In some embodiments, theheart configuration includes an anatomical parameter derived from animage of the patient collected as part of the ablation therapy.

In some embodiments, a method of treating a heart of a patient. Themethod includes identifying a source location within the heart of thepatient and an ablation pattern. The identification is based on ablationpattern simulations. Each ablation pattern simulation is based on asource location (e.g., rotor location) and an ablation pattern. Theidentifying is based on a patient cardiogram of the patient. The methodincludes positioning a neuromodulation device at a target site of theheart based on the identified source location. The method includesapplying energy based on the identified ablation pattern to the targetsite of the heart using the neuromodulation device. In some embodiments,the neuromodulation device is an ablation catheter and applying energyto the target site includes applying radiofrequency energy that ablatesneural or myocardial structures at the target site. In some embodiments,the neuromodulation device is a cryoablation catheter and applyingenergy to the target site comprises applying cooling energy thatcryoablates neural or myocardial structures at the target site. In someembodiments, the neuromodulation device comprises an implantable pulsegenerator and applying energy to the target site comprises applyingelectrical energy to neural or myocardial structures at the target site.In some embodiments, the neuromodulation device comprises a stereotacticbody radiation therapy device and applying energy to the target siteincludes applying radiation to neural or myocardial structures at thetarget site.

In some embodiments, a method of treating a patient is provided. Themethod includes identifying a source location of an arrhythmia withinthe heart of the patient and an ablation pattern by directing acomputing system to identify a simulated cardiogram that is similar to apatient cardiogram of the patient, the simulated cardiogram generatedfrom a non-ablation pattern simulation of a model library ofnon-ablation pattern simulations. Each non-ablation pattern simulationis generated based on a computational model of the heart and a simulatedheart configuration that includes a simulated source location. Eachheart configuration of a simulation mapped to a simulated cardiogramgenerated based on the simulation. The identifying of the sourcelocation further directs the computing system to identify a simulatedsource location and an ablation pattern based on the identifiedsimulated cardiogram. The simulated source location and the ablationpattern used in generating an ablation pattern simulation. The ablationpattern simulation is generated based on the computational model of theheart, based on the heart configuration that includes the simulatedsource location, and based on the ablation pattern. The method includespositioning a neuromodulation device at a target site based on theidentified simulated source location and applying energy based on theidentified ablation pattern using the positioned neuromodulation device.In some embodiments, the neuromodulation device is a stereotactic bodyradiation therapy device. the positioning includes a computing systemsending instructions to the stereotactic body radiation therapy device.In some embodiments, the method includes identifying anatomicalparameters of the patient from images collected by the stereotactic bodyradiation therapy device. In some embodiments, the neuromodulationdevice is an ablation catheter and applying energy includes applyingradiofrequency energy that ablates neural or myocardial structures atthe target site. In some embodiments, the neuromodulation device is acryoablation catheter and applying energy comprises applying coolingenergy that cryoablates neural or myocardial structures at the targetsite. In some embodiments, the neuromodulation device comprises animplantable pulse generator and applying energy comprises applyingelectrical energy to neural or myocardial structures at the target site.

In some embodiments, a method of treating a patient is provided. Themethod includes identifying a source location of an arrhythmia withinthe heart of the patient by directing a computing system to identify asimulated cardiogram that is similar to a patient cardiogram of thepatient. The simulated cardiogram is generated from a simulation of amodel library of simulations. Each simulation generated based on acomputational model of the heart and a simulated heart configurationthat includes a simulated source location. Each heart configuration of asimulation is mapped to a simulated cardiogram generated based on thatsimulation. The method further directs a computing system to identify asimulated source location of a simulated heart configuration used ingenerating the simulation from which the identified simulated cardiogramwas generated. The method includes positioning a neuromodulation deviceat a target site based on the identified simulated source location. Themethod includes applying energy to the target site using the positionedneuromodulation device.

In some embodiments, a method for generating a model library ofsimulations of electrical activations of a heart. The method includesaccessing simulated heart configurations that include a simulated sourcelocation and an ablation pattern. For each simulated heartconfiguration, the method includes running a simulation based on thesimulated heart configuration. The method includes designating thesimulation as being successful when the simulation does not result in anarrhythmia. In some embodiments, the method includes mapping ablationpatterns of simulated heart configurations used to generate successfulsimulations to simulated cardiograms generated based on simulationsbased on simulated heart configurations that do not include an ablationpattern.

In some embodiments, a method performed by a computing system forstoring results of an ablation procedure is provided. The method appliesa computational targeting procedure to identify an ablation target of aheart of a patient. The computational targeting procedure is based onmappings of cardiograms to source locations of an arrhythmia. Thecomputational targeting procedure inputs a cardiogram of the patient andoutputs the source location as the ablation target. The method receivesthe result of the ablation procedure performed on the patient based onthe identified ablation target. The method generates an ablationprocedure record of the result of the ablation procedure. The ablationprocedure record identifies the patient and interested parties in theablation procedure and includes a reference to the result of theablation procedure. The method published the ablation procedure recordfor recording in a distributed ledger for access by permissionedparties. In some embodiments, the distributed ledger is a blockchain. Insome embodiments, one or more interested party stores the result of theablation procedure and an electronic medical record of the patient. Insome embodiments, an interested party that stores the result of anablation procedure controls access by a party to the result. In someembodiments, the ablation procedure is one of a plurality of ablationprocedures performed on the patient during an ablation study of thepatient and the ablation procedure records for the patient are stored inthe same block of the distributed ledger. In some embodiments, eachblock of the distributed ledger stores ablation procedure records ofonly one patient. In some embodiments, the method further provides to aminer of the distributed ledger access to the computational targetingprocedure based on mining activity of the miner. In some embodiments,the method further provides a token to the miner based on the miningactivity and exchanging the token for access to the computationaltargeting procedure. In some embodiments, the distributed ledger is ablockchain and further comprising selecting a miner for mining a blockbased on a proof-of-stake consensus algorithm. In some embodiments, thecomputational targeting procedure includes applying a classifier thatinputs the cardiogram of the patient and outputs the source location,the classifier trained using the mappings as training data. In someembodiments, the mappings are generated using a computational model ofthe heart that models electromagnetic output of the heart over timebased on a heart configuration that includes a source location. In someembodiments, the mappings include cardiograms collected from patients.In some embodiments, the method further provides a contributor access tothe computational targeting procedure based on the contributor providingcomputational resources for training the classifier. In someembodiments, the computational targeting procedure includes identifyinga cardiogram of the mappings that is similar to the cardiogram of thepatient and selecting the source location of the identified mapping asthe ablation target. In some embodiments, the mappings are generatedusing a computational model of the heart that models electromagneticoutput of the heart over time based on a heart configuration thatincludes a source location. In some embodiments, mappings includecardiograms collected from patients. In some embodiments, the mappingsare generated using a computational model of the heart that modelselectromagnetic output of the heart over time based on a heartconfiguration that includes a source location. In some embodiments, themethod further provides a contributor access to the computationaltargeting procedure based on the contributor providing computationalresources for generating the mappings. In some embodiments, mappingsinclude cardiograms collected from patients. In some embodiments, themethod further provides a contributor access to the computationaltargeting procedure based on the contributor providing cardiogramscollected from patients.

In some embodiments, a computing system for storing results of aprocedure performed on a patient. The computing system comprises one ormore computer-readable storage mediums for storing computer-executableinstructions and one or more processors for executing thecomputer-executable instruction stored in the one or morecomputer-readable storage medium. The instructions when executed controlthe computing system to perform as follows. The computing systemreceives the result of the procedure performed on an electromagneticsource of the patient based on a procedure target. The procedure targetis identified by applying a computational targeting procedure thatinputs electromagnetic data derived from the electromagnetic source ofthe patient and outputs a procedure target. The computing systemgenerates a procedure record that includes a reference to the result ofthe procedure. The computing system publishes the procedure record in adistributed ledger for access by permissioned parties. In someembodiments, the distributed ledger is a blockchain. In someembodiments, the procedure is one of a plurality of procedures performedon the patient during a procedure study of the patient. In someembodiments, the procedure is one of a plurality of procedures performedon the patient during a study of the patient and the procedure recordsfor the patient are stored in the same block of the distributed ledger.In some embodiments, the computing system further provides to a miner ofthe distributed ledger access to the computational targeting procedurebased on mining activity of the miner. In some embodiments, theinstructions further provide a token to the miner based on the miningactivity and exchange the token for access to the computationaltargeting procedure. In some embodiments, wherein the computationaltargeting procedure includes instructions to apply a classifier thatinputs the electromagnetic data of the patient and outputs the targetlocation, the classifier trained using the mappings as training data. Insome embodiments, the mappings are generated using a computational modelof the electromagnetic source that models electromagnetic output of theelectromagnetic source over time based on an electromagnetic sourceconfiguration that includes a source location. In some embodiments, themappings include electromagnetic data collected from patients. In someembodiments, the computing system further provides a contributor accessto the computational targeting procedure based on the contributorproviding computational resources for training the classifier. In someembodiments, the computational targeting procedure includes identifyingelectromagnetic output of the mappings that is similar to theelectromagnetic output of the patient and selecting the source locationof the identified mapping as the procedure target. In some embodiments,the mappings are generated using a computational model of theelectromagnetic source that models electromagnetic output of theelectromagnetic source over time based on an electromagnetic sourceconfiguration that includes a source location. In some embodiments, themappings include electromagnetic data collected from patients. In someembodiments, the mappings are generated using a computational model ofthe electromagnetic source that models electromagnetic output of theelectromagnetic source over time based on an electromagneticconfiguration that includes a source location. In some embodiments, thecomputing system provides a contributor access to the computationaltargeting procedure based on the contributor providing computationalresources for generating the mappings. In some embodiments, the mappingsinclude electromagnetic data collected from patients. In someembodiments, the computing system provides a contributor access to thecomputational targeting procedure based on the contributor providingelectromagnetic data collected from patients.

In some embodiments, a method performed by one or more computing systemsis provided for identifying simulated electromagnetic data of anelectromagnetic source that are similar to a patient electromagneticdata of a patient electromagnetic source of a patient. The simulatedelectromagnetic data is generated based on simulated pacing locations ofthe electromagnetic source and the patient electromagnetic datagenerated based on a patient pacing locations of the patientelectromagnetic source. The identifies simulated electromagnetic datawhose simulated pacing locations are similar to the patient pacinglocations. The method identifies simulated electromagnetic datagenerated based on with a simulation configuration parameter that issimilar to a patient configuration parameter of the electromagneticsource of the patient. The method identifies simulated electromagneticdata generated based on simulated action potentials that are similar topatient action potentials of the patient. The method identifiessimulated electromagnetic data generated based on simulated conductionvelocities that are similar to patient conduction velocities of thepatient. The method generates a calibrated collection of simulatedelectromagnetic data based on the identified simulated electromagneticdata. In some embodiments, the method identifies simulatedelectromagnetic data that is similar to patient electromagnetic data ofthe patient. In some embodiments, the pacing lead is placed with aninvasive pacing device that administers electromagnetic pulses frominside the electromagnetic source. In some embodiments, the invasivepacing device is a catheter, an implantable cardioverter, or apacemaker. In some embodiments, the patient pacing is performed using anon-invasive pacing device that administers electromagnetic pulses fromoutside the electromagnetic source. In some embodiments, thenon-invasive pacing device generates an electromagnetic field to pacethe electromagnetic source of the patient. In some embodiments, thenon-invasive pacing device is a magnetic resonance device. In someembodiments, the electromagnetic source is a heart.

In some embodiments, a method is provided for identifying simulatedelectromagnetic data of an electromagnetic source that are similar to apatient electromagnetic data of a patient electromagnetic source of apatient. The method, for each of a plurality of patient pacing locationsof the patient electromagnetic source, includes pacing the patientelectromagnetic source by sending electromagnetic impulses to the pacinglocation and collecting the patient electromagnetic data during thepacing. The method includes submitting patient pacing locations andpatient electromagnetic data collected while pacing at patient pacinglocations to one or more computing devices that generate a calibratedcollection of simulations. The one or more computing devices identifiessimulations of a model library of simulations of the electromagneticsource based on similarity between pacing locations, sourceconfigurations, action potentials, conduction velocities, and patientelectromagnetic data of the simulations and of the patient. Theidentified simulations form the calibrated collection of simulations. Insome embodiments, the method includes submitting to the one or morecomputing devices a patient cardiogram of the patient and receiving anindication of a source configuration parameter of a simulation of thecalibrated collection based on similarity between the simulatedcardiograms and the patient cardiogram. In some embodiments, the methodincludes, for each patient pacing location, placing a pacing lead atthat patient pacing location wherein the electromagnetic impulse is sentvia the pacing lead. In some embodiments, the placing of a patientpacing lead is performed using an invasive pacing device thatadministers electrical impulses from inside the patient electromagneticsource. In some embodiments, wherein the invasive pacing device is acatheter, an implantable cardioverter, or a pacemaker. In someembodiments, the electromagnetic source is a heart. In some embodiments,the electromagnetic impulses are generated via a non-invasive pacingdevice. In some embodiments, the non-invasive pacing device is amagnetic resonance device. In some embodiments, the method includesreceiving from the one or more computing devices an indication of asource parameter of a source configuration identified based on thecalibrated collection. In some embodiments, the source parameter is asource location. In some embodiments, the method includes conducting aprocedure on the patient electromagnetic source based on the sourcelocation. In some embodiments, two of the patient pacing locations aredistant pacing location.

Although the subject matter has been described in language specific tostructural features and/or acts, it is to be understood that the subjectmatter defined in the appended claims is not necessarily limited to thespecific features or acts described above. Rather, the specific featuresand acts described above are disclosed as example forms of implementingthe claims.

In some embodiments, the MLMO system can be employed to classifyelectromagnetic output of an electromagnetic source based on differenttypes of classifications. For example, the classifications may includelocation of a heart disorder (e.g., rotor location), scar or fibrosis orpro-arrhythmic substrate location, heart geometry (e.g., ventricleorientation), and so on. To generate the training data, the MLMO systemlabels the training data with the classification type that theclassifier is to generate. Accordingly, the invention is not limitedexcept as by the appended claims.

1. One or more computing systems for bootstrapping simulations ofelectromagnetic (EM) output a patient heart of a patient, the one ormore computing systems comprising: one or more computer-readable storagemediums that store computer-executable instructions for controlling theone or more computing systems to: identify one or more first simulationsof EM output a heart, each first simulation based on a heartconfiguration, each first simulation having an EM output for each of aplurality of simulation steps; and for the one or more firstsimulations, for one or more source locations within a heart, initializepatient-specific EM output of a patient-specific simulation to the EMoutput of a simulation step of that first simulation; and run thatpatient-specific simulation to generate patient-specific EM output forsimulation steps of the patient-specific simulation based on theinitialized patient-specific EM output and based on a patient-specificsource configuration and that source location, the patient-specificsource configuration including parameters derived from the patientheart; and one or more processors for controlling the one or morecomputing systems to execute one or more of the computer-executableinstructions.
 2. The one or more computing systems of claim 1 whereinthe instructions further include instructions for controlling the one ormore computing systems to, for each patient-specific simulation,generate a patient-specific cardiogram.
 3. The one or more computingsystems of claim 2 wherein the instructions further include instructionsfor controlling the one or more computing systems to, for eachpatient-specific simulation, map the patient-specific cardiogramgenerated based on the patient-specific EM output of thatpatient-specific simulation to the source location of thatpatient-specific simulation.
 4. The one or more computing systems ofclaim 3 wherein the instructions further include instructions forcontrolling the one or more computing systems to: access a patientcardiogram of the patient; identify a patient-specific cardiogram basedon similarity to the patient cardiogram; and output an indication of thesource location to which the identified patient-specific cardiogram ismapped as an indication of a patient source location of the patient. 5.The one or more computing systems of claim 4 wherein the instructionsthat output display a graphic of a heart along with the indication ofthe source location.
 6. The one or more computing systems of claim 4wherein the indication of the source location is output to an ablationtherapy device.
 7. The one or more computing systems of claim 3 whereinthe instructions further include instructions for controlling the one ormore computing systems to perform machine learning training based ontraining data that includes, for patient-specific simulations, apatient-specific cardiogram of that patient-specific simulation labeledwith the source location of that patient-specific simulation.
 8. The oneor more computing systems of claim 7 wherein the machine learningtraining learns parameters of a neural network.
 9. The one or morecomputing systems of claim 7 wherein the machine learning traininglearns parameters of a convolutional neural network.
 10. The one or morecomputing systems of claim 7 wherein the instructions are further forcontrolling the one or more computing systems to: access a patientcardiogram of the patient; identify a patient source location byapplying a machine learning algorithm that is trained by the machinelearning training to the patient cardiogram; and output the patientsource location.
 11. The one or more computing systems of claim 10wherein the patient source location is output to an ablation therapydevice.
 12. The one or more computing systems of claim 2 wherein apatient-specific cardiogram is generated based on difference betweengeometry of a first simulation and geometry of the patient heart. 13.The one or more computing systems of claim 2 wherein a patient-specificcardiogram is generated based on the patient-specific EM output of apatient-specific simulation.
 14. The one or more computing systems ofclaim 1 wherein at least some of the patient-specific simulations arebased on geometry of the patient heart.
 15. The one or more computingsystems of claim 1 wherein at least some of the patient-specificsimulations are based on electrical characteristics of the patientheart.
 16. The one or more computing systems of claim 1 wherein at leastsome of the patient-specific simulations are based on geometry of afirst simulation.
 17. The one or more computing systems of claim 1wherein the identification of at least some of the first simulations isbased on similarity between the source configurations and thepatient-specific source configurations.
 18. A method performed by one ormore computing system for bootstrapping generation of a simulatedcardiogram, the method comprising: identifying simulated electromagnetic(EM) output of a step of a simulation of electrical activity of a heartbased on a heart configuration, the simulation for generating simulatedEM output for a plurality of simulation steps; initializingpatient-specific EM output of a patient-specific simulation to theidentified simulated EM output; and running a patient-specificsimulation of electrical activity of the heart of a patient to generatepatient-specific EM output for simulation steps of the patient-specificsimulation, the patient-specific simulation based on a patient heartconfiguration of the patient.
 19. The method of claim 18 furthercomprising repeating the identifying, initializing, and running for eachof a plurality simulated EM output of simulations based on differentheart configurations.
 20. The method of claim 19 wherein at least someof the patient-specific simulations are based on a source location of anarrhythmia and further comprising, for each of a plurality ofsimulations, map a patient-specific cardiogram derived frompatient-specific EM output of that simulation to the source location ofthat simulation.
 21. The method of claim 20 further comprising:accessing a patient cardiogram of the patient; identifying apatient-specific cardiogram based on similarity to the patientcardiogram; and outputting an indication of the source location to whichthe identified patient-specific cardiogram is mapped as an indication ofa patient source location of an arrhythmia of the patient.
 22. Themethod of claim 21 wherein the outputting includes displaying a graphicof a heart along with the indication of the patient source location. 23.The method of claim 21 wherein the outputting includes outputting anindication of the patient source location to an ablation therapy device.24. The method of claim 19 wherein at least some of the patient-specificsimulations are based on a source location of an arrhythmia and furthercomprising training a machine learning algorithm based on training datathat includes patient-specific cardiograms derived from thepatient-specific EM output of the patient-specific simulations labeledwith source locations.
 25. The method of claim of claim 24 wherein themachine learning algorithm includes a convolutional neural network thatinputs a cardiogram and outputs a source location.
 26. The method ofclaim of claim 24 wherein the machine learning algorithm is a neuralnetwork that inputs a cardiogram and outputs a source location.
 27. Themethod of claim 24 further comprising: accessing a patient cardiogram ofthe patient; identifying a patient source location by applying themachine learning algorithm to the patient cardiogram; and output anindication of the patient source location.
 28. The method of claim 27wherein the indication of the patient source location is output to anablation therapy device.
 29. The method of claim 19 wherein at leastsome of the patient-specific simulations are based on geometry of theheart of a patient.
 30. The method of claim 18 further comprisinggenerating a patient-specific cardiogram based on the patient-specificEM output of the patient-specific simulation.
 31. One or morecomputer-readable storage mediums that store computer-executableinstructions for controlling one or more computing systems to: identifyone or more first simulations of EM output a heart, each firstsimulation based on a heart configuration, each first simulation havingan EM output for each of a plurality of simulation steps; and for eachof a plurality of first simulations and source location of anarrhythmia, initialize patient-specific EM output of a patient-specificsimulation to the EM output of a simulation step of that firstsimulation; and run that patient-specific simulation to generatepatient-specific EM output for simulation steps of the patient-specificsimulation based on the initialized patient-specific EM output and basedon a patient-specific source configuration and that source location, thepatient-specific source configuration including parameters derived froma patient heart of a patient.
 32. The one or more computer-readablestorage mediums of claim 31 the computer-executable instructions arefurther for controlling the one or more computing systems to control theone or more computing systems to, for each patient-specific simulation,generate a patient-specific cardiogram.
 33. The one or morecomputer-readable storage mediums of claim 32 wherein thecomputer-executable instructions are further for controlling the one ormore computing systems to: identify a patient-specific cardiogram basedon similarity to a patient cardiogram of the patient; and output anindication of the source location of the patient-specific simulationthat generated the patient-specific EM output from which the identifiedpatient-specific cardiogram was generated.
 34. The one or morecomputer-readable storage mediums of claim 33 wherein thecomputer-executable instructions are further for controlling the one ormore computing systems to direct treatment of the patient based on theindication of the source location.
 35. The one or more computer-readablestorage mediums of claim 34 wherein the treatment is an ablationprocedure.
 36. The one or more computer-readable storage mediums ofclaim 31 wherein at least some of the first simulations are identifiedbased on similarity between the heart configuration of a firstsimulation and a patient heart configuration of the patient.